gzdoc.php

<?
/*
** Title………: PHP4 HTTP Compression Speeds up the Web
** Version…….: 1.20
** Author……..: catoc <catoc@163.net>
** Filename……:
** Last changed..: 18/10/2000
** Requirments…: PHP4 >= 4.0.1
** PHP was configured with –with-zlib[=DIR]
** Notes………: Dynamic Content Acceleration compresses
** the data transmission data on the fly
** Code by sun jin hu (catoc) <catoc@163.net>
** Most newer browsers since 1998/1999 have
** been equipped to support the HTTP 1.1
** Standard known as "content-encoding."
** Essentially the browser indicates to the
** Server that it can accept "content encoding"
** and if the server is capable it will then
** compress the data and transmit it. The
** browser decompresses it and then renders
** the page.
**
** Modified by John Lim (jlim@natsoft.com.my)
** based on ideas by Sandy McArthur, Jr
** Usage……..:
** No space before the beginning of the first "<?" tag.
** ————Start of file———-
** |<?
** | include(“”);
** |?>
** |<HTML>
** |… the page …
** |</HTML>
** |<?
** | gzdocout();
** |?>
** ————-End of file———–
*/
ob_start();
ob_implicit_flush(0);
function CheckCanGzip(){
global $HTTP_ACCEPT_ENCODING;
if (headers_sent() || connection_aborted()){
return 0;
}
if (strpos ($ HTTP_ACCEPT_ENCODING, "x-gzip")! == false) return "x-gzip";
if (strpos ($ HTTP_ACCEPT_ENCODING, "gzip")! == false) return "gzip";
return 0;
}
/* $level = compression level 0-9, 0=none, 9=max */
function GzDocOut($level=3, $debug=0){
$ENCODING = CheckCanGzip();
if ($ENCODING){
print "
<!– Use compress $ENCODING –>
";
$Contents = ob_get_contents();
ob_end_clean();
if ($debug){
$ S = "<center> <font style =" color: # C0C0C0;
font-size: 9px; font-family: tahoma "> Not compress
length: ". strlen ($ Contents)."; ";
$s .= "Compressed length: ".
strlen(gzcompress($Contents, $level)).
"</font></center>";
$Contents .= $s;
}
header("Content-Encoding: $ENCODING");
print "x1fx8bx08x00x00x00x00x00";
$Size = strlen($Contents);
$Crc = crc32($Contents);
$Contents = gzcompress($Contents, $level);
$ Contents = substr ($ Contents, 0, strlen ($ Contents) – 4);
print $Contents;
print pack(“V”, $Crc);
print pack(“V”, $Size);
exit;
}else{
ob_end_flush();
exit;
}
}
?>

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*