php通过ini_set调用output_compression压缩网页
作者:admin 时间:2012-10-23 15:11:36 浏览:网页压缩是一种网页优化技术,可以让网页体积缩小后再传输到客户端,从而减少数据传送量,提高速度。这种技术现在使用已经相当普遍,绝大多数网页都使用了这种技术。
网页压缩可以在服务器或空间里通过参数设置启用或关闭,这个设置是对网站所有页面有效的,操作起来并不复杂。
如果你想单独操作某个页面,使用或不使用压缩,在php里也可以轻松实现。
ini_set调用zlib.output_compression压缩网页
下面是实例代码:
<?php ini_set('zlib.output_compression', 'Off'); ?>
或
<?php ini_set('zlib.output_compression', 'On'); ?>
只需在网页的开头加上上述的一行代码即可。
加上代码后,可以立即检测网页gzip压缩是否设置有效了。
刚才说到,可以通过全局设置来控制整个网站所有网页启动或关闭网页压缩的功能,各种web服务器的具体设置操作可以看这里:网站启用GZip压缩后,速度快了3倍!
在一些案例中发现,ini_set调用zlib.output_compression设置为“on”后,php不发送Content-type header,从而导致网页输出内容不完整。在这种情况下,可以通过设置buffer size来代替。
下面是实例代码:
<?php
ini_set("zlib.output_compression", 4096);
?>
ob_gzhandler也能实现网页压缩
压缩网页,ob_gzhandler也能实现,不过效率没有zlib.output_compression高,请参考文章《zlib.output_compression比ob_gzhandler效率高》。
知识扩展
ini_set的用法
描述
string ini_set ( string $varname , string $newvalue )
设置配置项的值。配置选项将在脚本的执行时使用这个新的值,直到该脚本执行结束。
参数
varname
并非所有可用的选项都可以通过ini_set ()来修改。
newvalue
新值的选项。
返回值
成功则返回旧值,失败返回FALSE。
实例
<?php
echo ini_get('display_errors');
if (!ini_get('display_errors')) {
ini_set('display_errors', 1);
}
echo ini_get('display_errors');
?>
注意:
1.php.ini文件中,并不是所有的设置项都是以integer型存储的,比如upload_max_filesize项就是以简写形式( shorthand notation)存储的,因此直接用ini_get()并不能获得正确的值,可以调用return_bytes()函数进行转换。
2.并不是所有的available options都可以通过ini_set()函数来修改。具体哪些可以通过ini_set()函数来修改,参见http://www.php.net/manual/zh/ini.list.php
如下图所示:
其中“可修改范围”的定义如下表:
因此,像post_max_size、upload_max_filesize用下面的方法是修改不了的。
[php] view plaincopyprint?
ini_set('post_max_size','1024M');
ini_set('upload_max_filesize','1024M');
ini_set('post_max_size','1024M');
ini_set('upload_max_filesize','1024M');
正确做法是用.htaccess文件:
[c-sharp] view plaincopyprint?
php_value upload_max_filesize 50M
php_value post_max_size 100M
php_value upload_max_filesize 50M
php_value post_max_size 100M
前提是该站点在httpd.conf中配置了:AllowOverride All 。
您可能对以下文章也感兴趣:
标签: ini_set
- 站长推荐