使用php4加速网络传输


Posted in PHP onOctober 09, 2006

标 题: 使用php4加速网络传输。

<?
/***************************************
** Title.........: PHP4 HTTP Compression Speeds up the Web
** Version.......: 1.10
** Author........: catoc <catoc@163.net>
** Filename......: gzdoc.php
** Last changed..: 25/08/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.
** Useage........:
**                 No space before the beginning of the first '<?' tag
.
**                 ------------Start of file----------
**                 |<?
**                 | include('gzdoc.php');
**                 | print "Start output !!";
**                 |?>
**                 |<HTML>
**                 |... the page ...
**                 |</HTML>
**                 |<?
**                 | gzdocout();
**                 |?>
**                 -------------End of file-----------
***************************************/
ob_start();
ob_implicit_flush(0);
function GetHeader(){
        $headers = getallheaders();
        while (list($header, $value) = each($headers)) {
                $Message .= "$header: $value<br> ";
        }
        return $Message;
}
function CheckCanGzip(){
        global $HTTP_ACCEPT_ENCODING, $PHP_SELF, $Wget, $REMOTE_ADDR,  
$S_UserName;
        if (connection_timeout() || connection_aborted()){
                return 0;
        }
        if ((strpos('catoc'.$HTTP_ACCEPT_ENCODING, 'gzip')) || $Wget =
= 'Y'){
                if (strpos('catoc'.$HTTP_ACCEPT_ENCODING, 'x-gzip')){

                        $ENCODING = "x-gzip";
                        $Error_Msg = str_replace('<br>','',GetHeader()
);
                        $Error_Msg .= "Time: ".date("Y-m-d H:i:s")."
";
                        $Error_Msg .= "Remote-Address: ".$REMOTE_ADDR.
" ";
                        //mail('your@none.net', "User have x-gzip outp
ut in file $PHP_SELF!!!", $Error_Msg);
                }else{
                        $ENCODING = "gzip";
                }
                return $ENCODING;
        }else{
                return 0;
        }
}
function GzDocOut(){
        global $PHP_SELF, $CatocGz, $REMOTE_ADDR, $S_UserName;
        $ENCODING = CheckCanGzip();
        if ($ENCODING){
                print " <!-- Use compress $ENCODING --> ";
                $Contents = ob_get_contents();
                ob_end_clean();
                if ($CatocGz == 'Y'){
                        print "Not compress lenth: ".strlen($Contents)
."<BR>";
                        print "Compressed lenth: ".strlen(gzcompress($
Contents))."<BR>";
                        exit;
                }else{
                        header("Content-Encoding: $ENCODING");
                }
                print pack('cccccccc',0x1f,0x8b,0x08,0x00,0x00,0x00,0x
00,0x00);
                $Size = strlen($Contents);
                $Crc = crc32($Contents);
                $Contents = gzcompress($Contents);
                $Contents = substr($Contents, 0, strlen($Contents) - 4
);
                print $Contents;
                print pack('V',$Crc);
                print pack('V',$Size);
                exit;
        }else{
                ob_end_flush();
                $Error_Msg = str_replace('<br>','',GetHeader());
                $Error_Msg .= "Time: ".date("Y-m-d H:i:s")." ";
                $Error_Msg .= "Remote-Address: ".$REMOTE_ADDR." ";
                //mail('your@none.net', "User can not use gzip output  
in file $PHP_SELF!!!", $Error_Msg);
                exit;
        }
}
?>

PHP 相关文章推荐
笑谈配置,使用Smarty技术
Jan 04 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
Apr 12 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
PHP中常用的转义函数
Feb 28 PHP
php使用curl存储cookie的示例
Mar 31 PHP
PHP的preg_match匹配字符串长度问题解决方法
May 03 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 PHP
laravel 框架实现无限级分类的方法示例
Oct 31 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 PHP
与数据库连接
Oct 09 #PHP
PHP新手上路(八)
Oct 09 #PHP
网络资源
Oct 09 #PHP
PHP中的正规表达式(一)
Oct 09 #PHP
PHP中的正规表达式(二)
Oct 09 #PHP
smtp邮件发送一例
Oct 09 #PHP
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
Oct 09 #PHP
You might like
ThinkPHP惯例配置文件详解
2014/07/14 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP调用其他文件中的类
2018/04/02 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
用实例解释Python中的继承和多态的概念
2015/04/27 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
Python笔记之代理模式
2019/11/20 Python
python实现局域网内实时通信代码
2019/12/22 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
《小石潭记》教学反思
2014/02/13 职场文书
家长对老师的评语
2014/04/18 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
应届生自荐书
2014/06/23 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书