Location: PHPKode > scripts > PHP server-side web browser > php-server-side-web-browser/main.php
<?php
//check if target location specified
if (!isset($HTTP_GET_VARS['php_browser_uri']) || !$HTTP_GET_VARS['php_browser_uri']){
    header("Location: about:blank");
    die;
}

if (get_magic_quotes_gpc())
        $new_uri = stripslashes( urldecode( $HTTP_GET_VARS['php_browser_uri'] ));
else
        $new_uri = urldecode( $HTTP_GET_VARS['php_browser_uri'] );

//link up class definitions
require_once "URI.class.php";
require_once "GetUri.php";
require_once "ParseHtml.php";

//initialize object to work with HTTP protocol
$GetURI =& new GetUri($new_uri);

//follow redirects, get content type and other headers
$GetURI->uri_lookup();
check_errors();

//get URI after server redirects
$final_uri = $GetURI->URI->get_full_uri();

//get content type
$full_content_type = $GetURI->Response->content_type;
if ($semicolon_pos = strpos($full_content_type, ";")){
    $content_type = rtrim( substr( $full_content_type, 0, $semicolon_pos ) );
}else{
    $content_type = $full_content_type;
}

//set content type
header ("Content-type: $full_content_type");
//echo $content_type;

//check content type
switch (0){
  case strcasecmp("text/html", $content_type):
//  case strcasecmp("application/xhtml+xml", $content_type):
    $parse = true;
    $store_in_memory = true;
    break;
  default:
    $store_in_memory = false;
    $parse = false;
    break;
}

//get content of the URI
$content = "";
$GetURI->connect("fopen");
check_errors();
//binary-safe reading
$GetURI->link_read_method ("bytes");

if ($store_in_memory){
    while (!$GetURI->Response->eof_reached()){
        $content .= $GetURI->link_read();
    }
}else{
    while (!$GetURI->Response->eof_reached()){
        echo $GetURI->link_read();
    }
    die;
}

if ($parse){
    $HtmlParser =& new ParseHtml($content, $GetURI->URI);
    $content = $HtmlParser->html;
}
echo $content;


//check errors in GetUri
function check_errors(){
    global $GetURI, $new_uri;
    if ($GetURI->count_errors()){
        //errors found
        $output  = "Error occured while looking up $new_uri. \r\n";
        $output .= "<table border='0' width='100%'><tr><td><table border='1'>\r\n";
        foreach ($GetURI->errors as $error_name=>$error_description){
            $output .= "<tr><td>$error_name:</td><td>$error_description</td></tr>";
        }
        $output .= "</table></td></tr></table>\r\n";
        //dispaly errors and halt
        echo $output; 
        die;
    }
}

?>
Return current item: PHP server-side web browser