<?
/*
** Title.........: PHP4 HTTP Compression Speeds up the Web
** Version.......: 1.20
** Author........: catoc <
catoc@163.net
>
** Filename......: gzdoc.php
** 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(/'gzdoc.php/');
** |? >
** |<HTML>
** |... the page ...
** |</HTML>
** |<?
** | gzdocout();
** |? >
** -------------End of file-----------
*/
ob_start();
ob_implicit_flush(0);
function CheckCanGzip(){
global $HTTP_ACCEPT_ENCODING;
if (headers_sent() || connection_timeout() || 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=1,$debug=0){
$ENCODING = CheckCanGzip();
if ($ENCODING){
print /"n<!-- Use compress $ENCODING -->n/";
$Contents = ob_get_contents();
ob_end_clean();
if ($debug){
$s = /"<p>Not compress length: /".strlen($Contents);
$s .= /"
Compressed length: /".strlen(gzcompress($Contents,$level));
$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;
}
}
?>
相关推荐
输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。 我们先举一个简单的例子,让大家对Output Control有一个大致的印象: Example 1. PHP...
ob_start()使用ob_start()把输出那同输出到缓冲区,而不是到浏览器。然后用ob_get_contents得到缓冲区的数据。ob_start()在服务器打开一个缓冲区来保存所有的输出。所以在任何时候使用echo ,输出都将被加入缓冲区中...
【转载】原文地址:http://www.itbbs.cn/index.php?showtopic=1074 Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后...php ob_start(); //打开缓冲区 ech
下面的代码是一个压缩网页的例子,我们利用ob_gzip函数,使用ob_start将输出内容压缩后放到“缓冲区”后再输出 。 PHP代码 //启用压缩 if(function_exists('ob_gzip')) { ob_start('ob_gzip'); } //准备一些待压缩...
有些信息比方经常不变的,但是还是能变的信息放在缓存中以加快显示速度,这是很有价值的,所谓的缓存,通俗的理解就是一些保存在服务器端的共用信 息.它是于服务器同生死的,我们在保存缓存的时候可以指定下次更新的时间...
控制您的浏览器cache Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件...
我想将PHP脚本中输出的东西收集在一起,于是使用了ob_start和ob_end_flush这两个函数,确实有达到收集输出内容的作用,但同时也将这些打印到了控制台界面中。我想问的是有没有办法,阻止PHP像控制台输出信息。该软件...
输出前使用尽量使用 ob_start();可以加快输出速度,适用NT 对unix类服务器 如果使用ob_start(‘ob_gzhandler’);输出效率将更高
输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。 我们先举一个简单的例子,让大家对Output Control有一个大致的印象: Example 1. ...
ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行/都会有”Header had all ready send by”的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区...
转载个PHP生成静态页面学习的资料,希望对学习PHP生成静态页面的朋友有帮助。
PHP用法ob_start生成html页面的方法_.docx
在开始之前还是提一下三个函数吧:”ob_start()、ob_end_clean()、ob_get_contents()” ob_start():是打开缓冲区的,就是要把您需要生成的静态文件的内容缓存在这里; ob_get_contents():是读出缓冲区里的内容,下面...