<?php
// php_content_type.php
// PHP Content Type Tutorial 
// RJM Programming - August, 2015
// Thanks to http://www.sitepoint.com/web-foundations/mime-types-complete-list/

$selname = "";
if (isset($_POST['selname'])) $selname = $_POST['selname'];
if (isset($_GET['selname'])) $selname = $_GET['selname'];

if (strpos($selname, "/") !== false) $selname = urlencode($selname);

$stybits = "<link href='//www.rjmprogramming.com.au/PHP/emboss_h1.css' rel='stylesheet' type='text/css'>";
$scrbits = "<script type='text/javascript'> function testit() {\n if (document.getElementById(\"selname\").value != \"\") {\n if (document.body.innerHTML.indexOf(\"i\" + \"frame\") == -1) {\n document.body.innerHTML+=\"<br><br><div align=center><if\" + \"rame width=400 height=400 style=background-color:lightgreen id=myixframe src=./php_content_type.php?selname=\" + encodeURIComponent(document.getElementById(\"selname\").value) + \"; title=i\" + \"frame></i\" + \"frame></div>\";\n }\n document.getElementById(\"myixframe\").src=\"./php_content_type.php?selname=\" + encodeURIComponent(document.getElementById(\"selname\").value);\n }\n }\n </script>";
$firstbits = "<!doctype html>\n<html>\n<head>\n<title>PHP Content Type Primer Tutorial</title>" . $stybits . $scrbits . "</head>\n<body style='background-color: lightblue;'>\n";
$erroneousbits = "<h1 align='center'>Sorry, but " . urldecode($selname) . " is too big a media file to display.</h1><br>";
$formbits = "<h1 align='center'>PHP Content Type Url</h1><br><div align='center'>\n<form target='_blank' action='./php_content_type.php' method='POST'>Url: <input type='url' name='selname' id='selname' style='width:70%;' value='http://www.rjmprogramming.com.au/MyBusinessUnidad/Welcome_files/logo.jpg'></input><br><br><input onclick=' if (document.getElementById(\"selname\").value != \"\") { window.open(document.getElementById(\"selname\").value, \"_blank\");  } ' type='button' value='Navigate via Web Browser'></input>&nbsp;<input type='submit' title='Would prefer http://www.rjmprogramming.com.au URL please' value='Show via PHP Content Type to New Webpage' name='pdf' id='pdf'></input>&nbsp;\n<input type='button' onclick=' testit(); ' title='Would prefer http://www.rjmprogramming.com.au URL please' value='Show PHP Content Type Below' id='viaixframe'>\n</input></form></div></body></html>";
$suffix = "";

if ($selname != "") {
        $prefix = "application/";
        $qbits = explode("?", urldecode($selname));
        $otherbits = explode(".", $qbits[0]);
        //echo urldecode($selname);
        
        $firstbits = "";
        $erroneousbits = "";
        $formbits = "";
        
        // Thanks to http://www.sitepoint.com/web-foundations/mime-types-complete-list/
        if (!file_exists("our_mime.list")) file_put_contents("our_mime.list", file_get_contents("http://www.sitepoint.com/web-foundations/mime-types-complete-list/"));
        $mimelist = file_get_contents("our_mime.list");
 
        // Mime type considerations below ...
 
        $ct = "";
        $cells = explode("</td>", $mimelist);
        
        for ($ii=0; $ii<(sizeof($cells) - 1); $ii+=2) {
          $precells = explode(">", $cells[$ii]);
          $extis = strtolower(str_replace(".", "", $precells[sizeof($precells) - 1]));
          if ($ct == "" && strtolower($otherbits[sizeof($otherbits) - 1]) == $extis) {
           $precells = explode(">", $cells[1 + $ii]);
           $ct = $precells[sizeof($precells) - 1];
          }
        }

        if ($ct == "") {
         if (strpos(strtolower(urldecode($selname)), ".") === false) {
          $ct = "text/html";
         } else {
 
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "m4v") {
            $prefix = "video/";
            $otherbits[sizeof($otherbits) - 1] = "mpeg";
          }
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "m4a") {
            $prefix = "audio/";
            $otherbits[sizeof($otherbits) - 1] = "mpeg";
          }

          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "html") $prefix = "text/";
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "htm") $prefix = "text/";
        
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "jpg") $prefix = "image/";
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "jpeg") $prefix = "image/";
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "gif") $prefix = "image/";
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "bmp") $prefix = "image/";
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "tif") $prefix = "image/";
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "tiff") $prefix = "image/";
          if (strtolower($otherbits[sizeof($otherbits) - 1]) == "png") $prefix = "image/";
          $ct = $prefix . strtolower($otherbits[sizeof($otherbits) - 1]);
         }
        }
        //echo $ct;
        header('Content-Type: ' . $ct);
        echo file_get_contents(urldecode($selname));
        
} else {
    $erroneousbits = "";
}

echo $firstbits;
echo $erroneousbits;
echo $formbits;
?> 


