php使用zlib压缩和解压缩文件(swf)
发布:smiling 来源: PHP粉丝网 添加日期:2013-11-24 22:58:06 浏览: 评论:0
本文章利用一个实例来介绍php中的zlib进行文件的压缩和解压缩,在我们使用zlip功能之前我们需要进行如下操作,否则就没能往下看了,首先在PHP.ini里面设置:
- zlib.output_compression = On
- zlib.output_compression_level = 6
第一项是开启压缩,第二项是压缩率,可选范围为1-9;
然后是apach里面开启deflate压缩,去掉井号。
- #LoadModule deflate_module modules/mod_deflate.so
到此为止这样还是不行的,还需要在http.conf选个一空白处加上对文件类型的输出过滤,对哪些后缀的进行选择性压缩。
- AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
- AddOutputFilter DEFLATE css js txt php xml html htm
如果没有权限修改php.ini文件我们可以常用使用phpr ini_set函数来操作,如:
- <?php
- ini_set("zlib.output_compression", "On");
- ?>
- <?php
- ini_set("zlib.output_compression", 4096);
- ?>
好了现在万事具备了我们来入正文件,压缩swf文件:
- <?php
- //文件名
- $filename = "test.swf";
- //打开文件
- $rs = fopen($filename,"r");
- //读取文件的数据
- $str = fread($rs,filesize($filename));
- //设置swf头文件
- $head = substr($str,1,8);
- $head = "C".$head;
- //获取swf文件内容
- $body = substr($str,8);
- //压缩文件内容,使用最高压缩级别9
- $body = gzcompress($body, 9);
- //合并文件头和内容
- $str = $head.$body;
- //关闭读取的文件流
- fclose($rs);
- //创建一个新的文件
- $ws = fopen("create.swf","w");
- //写文件
- fwrite($ws,$str);
- //关闭文件留
- fclose($ws);
- ?>
解压flash swf文件
- <?php
- //文件名
- $filename = "test.swf";
- //打开文件
- $rs = fopen($filename,"r");
- //读取文件的数据
- $str = fread($rs,filesize($filename));
- //设置swf头文件
- $head = substr($str,1,8);
- $head = "F".$head;
- //获取swf文件内容
- $body = substr($str,8);
- //解压缩文件内容
- $body = gzuncompress($body);
- //合并文件头和内容
- $str = $head.$body;
- //关闭读取的文件流
- fclose($rs);
- //创建一个新的文件
- $ws = fopen("create.swf","w");
- //写文件
- fwrite($ws,$str);
- //关闭文件留
- fclose($ws);
- ?>
注意:gzip数据头比zlib数据头要大,因为它保存了文件名和其他文件系统信息,事实上这是广泛使用的gzip文件的数据头格式。注意zlib函式库本身不能创建一个gzip文件,但是它相当轻松的通过把压缩数据写入到一个有gzip文件头的文件中。
Tags: php zlib压缩 解压缩文件
- 上一篇:.htaccess的基本用法与介绍
- 下一篇:apache网站提示503错误解决办法
相关文章
- ·php快速url重写实例(2013-11-23)
- ·apache下禁止某个目录运行php程序的方法(2013-11-23)
- ·apache指定目录禁止执行php文件(2013-11-25)
- ·我不知道如何将PHP安装到Apache 1.3上?(2013-11-27)
- ·php apache PHP_AUTH_USER用户登录的方法(2014-08-23)
- ·利用.htaccess去除codeigiter的index.php(2014-09-20)
- ·Apache域名绑定并隐藏index.php文件的方法(2014-09-20)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)