/**
 * Test Http functions.
 */
function test_functions()
{
    http_cache_last_modified();
    http_chunked_decode();
    http_deflate();
    http_inflate();
    http_build_cookie();
    http_date();
    http_get_request_body_stream();
    http_get_request_body();
    http_get_request_headers();
    http_match_etag();
    http_match_modified();
    http_match_request_header();
    http_support();
    http_negotiate_charset();
    http_negotiate_content_type();
    http_negotiate_language();
    ob_deflatehandler();
    ob_etaghandler();
    ob_inflatehandler();
    http_parse_cookie();
    http_parse_headers();
    http_parse_message();
    http_parse_params();
    http_persistent_handles_clean();
    http_persistent_handles_count();
    http_persistent_handles_ident();
    http_get();
    http_head();
    http_post_data();
    http_post_fields();
    http_put_data();
    http_put_file();
    http_put_stream();
    http_request_body_encode();
    http_request_method_exists();
    http_request_method_name();
    http_request_method_register();
    http_request_method_unregister();
    http_request();
    http_redirect();
    http_send_content_disposition();
    http_send_content_type();
    http_send_data();
    http_send_file();
    http_send_last_modified();
    http_send_status();
    http_send_stream();
    http_throttle();
    http_build_str();
    http_build_url();
}
Example #2
0
 public function send()
 {
     if (function_exists('http_match_etag') && function_exists('http_match_modified')) {
         $lastModified = $this->getLastModified()->getTimestamp();
         if (http_match_etag($this->getEtag()) || http_match_modified($lastModified)) {
             $this->setNotModified();
             $this->sendHeaders();
             exit;
         }
     }
     $this->sendHeaders();
     if (empty($this->content)) {
         readfile($this->file->getPathname());
     } else {
         $this->sendContent();
     }
 }
Example #3
0
$file_last_modified = filemtime($src_uri);
header("Last-Modified: " . date("r", $file_last_modified));
$max_age = 300 * 24 * 60 * 60;
// 300 days
$expires = $file_last_modified + $max_age;
header("Expires: " . date("r", $expires));
$etag = dechex($file_last_modified);
header("ETag: " . $etag);
$cache_control = "must-revalidate, proxy-revalidate, max-age=" . $max_age . ", s-maxage=" . $max_age;
header("Cache-Control: " . $cache_control);
/*
 * Check if the client should use the cached version.
 * Return HTTP 304 if needed.
 */
if (function_exists("http_match_etag") && function_exists("http_match_modified")) {
    if (http_match_etag($etag) || http_match_modified($file_last_modified)) {
        header("HTTP/1.1 304 Not Modified");
        exit;
    }
} else {
    error_log("The HTTP extensions to PHP does not seem to be installed...");
}
/*
 * Extract the directory, file name and file
 * extension from the "uri" parameter.
 */
$uri_dir = "";
$file_name = "";
$content_type = "";
$uri_parts = explode("/", $src_uri);
for ($i = 0; $i < count($uri_parts) - 1; $i++) {