×

php开启gzip

php开启gzip(php开启curl)

admin admin 发表于2023-02-23 14:56:10 浏览59 评论0

抢沙发发表评论

本文目录一览:

discuz怎么启动gzip压缩

需要服务器开启GZIP

服务器开启GIZP的步骤如下:

1、修改PHP.ini文件 找到 extension=php_zip.dll  把前面的分号去掉然后保存文件

2、复制你php的安装目录下 ext文件夹下的 php_zip.dll到系统所在盘 windows目录下system32文件夹下

3、重启服务器

如何用PHP实现页面的GZIP压缩输出

第一步,你需要对php的设置如下:

php.ini:  output_buffering = Off  output_handler = ob_gzhandler  zlib.output_compression = Off  zlib.output_compression_level = -1-php开启gzip

第二步,你需要在apache下增加如下设置:

AddOutputFilter DEFLATE html php js css

这样就可以对html php js css进行gzip压缩了。

第三步,你需要使用如下php压缩html并输出到客户端的函数:

function compress_html($string) {   return ltrim(rtrim(preg_replace(array("/ *([^ ]*) */","//","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/[ ]+/'),         array("\\1",'','','','','',''),$string))); }-php开启gzip

上面的这个正则表达式,很强大的哦,经过我本人亲自测试可使用。

通过以上方法,你就可以将你的html代码压缩然后输出给客户端了。不信你可以查看源代码,就是一行,网页瞬间压缩很小。

如何开启gzip压缩方法大全

IIS6.0启用Gzip压缩的方法:

1、新建Web服务扩展(如下图)

dll路径:“c:windowssystem32inetsrvgzip.dll”,然后启用。

2、网站服务中开启HTTP压缩支持(如下图)

临时目录需要给IIS用户读写权限。

3、修改IIS配置文件MetaBase.xml

文件路径:“c:windowssystem32inetsrv”(请先备份至他处),打开后搜索“HcDynamicCompressionLevel”,并修改(确定已备份)“Compression/deflate”和“Compression/gzip”两个片段的内容。下面的图n和图b所修改的内容用意是将js、css和php加入到压缩的范畴,数字9代表压缩等级。-php开启gzip

(图n)

(图b)

4、重启IIS服务使之生效

——————————————————分分割割—————————————————

Apache启用Gzip压缩的方法:

1、开启模块并添加配置项目

a、vi /etc/httpd/conf/httpd.conf

b、查找LoadModule (/LoadModule),加入“LoadModule deflate_module modules/mod_deflate.so”这行

c、添加配置项目(下段内容)

复制代码代码如下:

IfModule mod_deflate.c

# 压缩等级 9

DeflateCompressionLevel 9

# 压缩类型 html、xml、php、css、js

SetOutputFilter DEFLATE

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php-php开启gzip

AddOutputFilter DEFLATE js css

/IfModule

2、重启apache使之生效

service httpd start

——————————————————分分割割—————————————————

检测是否支持Gzip

END

注意事项

1. 在编辑MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin

2. 修改完成后开启iisadmin服务,并执行iisreset命令

关于SEO的测试

压缩是否对SEO有影响,经测试,开启后仍然可以被很好的收录。

如何开启gzip压缩

gzip是HTML压缩算法的一种,HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩工作原理是:

Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;

如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;

如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;

如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;

如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;

如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。

怎么做gzip压缩呢?大致有:在Contol Pannel开启gzip、开启http服务器gzip、利用php本身的gzip。

IE6和火狐都支持客户端gzip,在网页传输之前,先使用gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示。

IIS6已经内建了gzip压缩的支持。在IIS6上做gzip压缩的方法是:

如果你需要压缩静态文件,可以先在硬盘上新建一个目录,并给它“IUSR_机器名”这个用户设置写权限。如果压缩动态文件就可以不用这样的,因为它的页面是每次都动态生成的(页面动态生成),压缩完就放弃。然后在IIS管理器中,“网站”上面右键-属性,不是下面的某个站点,而是整个网站。进入“服务”标签,选上启用动态内容压缩,静态内容压缩。给gzip的临时目录空间不要太大了200MB左右就够了。-php开启gzip

然后选中网站下面那个服务器扩展,新建一个服务器扩展。可以用任何你想用的名字,下面的添加文件的路径是:

c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展。

这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。我们只能去修改它的配置文件了。

在c:\windows\system32\inetsrv\下面有个MetaBase.xml文件,可以用记事本打开,找到IIsCompressionScheme,有三个相同名字的段,

分别是

IIsCompressionScheme Location =“/LM/W3SVC/Filters/Compression/deflate”

IIsCompressionScheme Location =“/LM/W3SVC/Filters/Compression/gzip”

IIsCompressionSchemes Location =“/LM/W3SVC/Filters/Compression/Parameters”

前两段有基本相同的参数,在这两段的参数HcScriptFileExtensions下面都加上一行aspx,如果你有其它的动态程序要压缩,也加在这里。HcDynamicCompressionLevel改成9,9是性价比最高的一个。-php开启gzip

至此,怎么做gzip压缩的过程我们就都实现了,需要注意的是:网页启用了gzip压缩后网站打开速度通常可能不会有太明显的感觉(相对于浏览者),可以用一些特定的来检查你的网页是否压缩过了,以及压缩比和加快的速度。-php开启gzip

如何启用网页GZIP压缩

下面”舒宇卓创站长“将和大家一起分享一下,希望对咱们站长有所帮助! 1.开启网页GZIP压缩有什么好处? Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。 进而对于搜索引擎的收录也有一定的好处,也大大提高了我们的用户体验度。 2.如何启用IIS的Gzip压缩功能: 首先要有网站管理权限和服务器远程管理权限 步骤如下: 第一、如果你需要压缩静态文件(HTML),需要在硬盘上建一个目录,并给它“IUSR_机器名”这个用户的写权限。如果压缩动态文件(PHP,asp,aspx)就不需要了,因为它的页面是每次都动态生成的,压缩完就放弃。打开Internet信息服务(IIS)管理器,右击“网站”—“属性”(注意:这里的网站是整个网站文件不是某个网站目录),之后选择“服务”。在“HTTP压缩”框中选中“压缩应用程序文件”和“压缩静态文件”,按需要设置“临时目录”和“临时目录的最大限制”。 第二、在Internet信息服务(IIS)管理器,右击“Web服务扩展”—“增加一个新的Web服务扩展”,在“新建Web服务扩展”框中输入扩展名“HTTP Compression”,添加“要求的文件”为C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中“设置扩展状态为允许”;这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。因为默认的可压缩文件并没有这个扩展名。而管理界面中你又找不到可以增加扩展名的地方,这时候只能去修改它的配置文件了。 第三、使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),查找 IIsCompressionScheme标签,有三个相同名字的段,分别是deflate,gzip,Parameters,第三段不用管它,前两段有基本相同的参数,HcDynamicCompressionLevel,设置压缩率,取值0~10,0不压缩,10最高压缩率,这里设置成9,9是性价比最高的一个。HcFileExtensions,需要压缩的静态文件扩展名,默认只有htm,html,txt,可以把js,css,xml添加进去。建议按原来的格式,用换行作为分隔。

使用php判断网页是否gzip压缩

昨天晚上群里有朋友采集网页时发现file_get_contents

获得的网页保存到本地为乱码,响应的header

Content-Encoding:gzip

但在浏览器里看是正常的。

因为我有过相关经验马上发现是网站开启了gzip而file_get_contents

获得的是压缩过的页面,而不是解压过的页面(不知道是不是要file_get_conttents

请求网页时带上相应的参数,直接获得没有被gzip压缩过的网页?)

刚好我前不久刚看到可以用读取文件的前2个字节判断文件类型。群里面的朋友也说gzip压缩过的网页(gbk编码)前2字节是

1F

8B

于是就可以判断网页是否gzip压缩过。

代码如下:

复制代码

代码如下:

//米尔军事网采用

gzip压缩网页

//file_get_contents

直接获得的网页是乱码。

header('Content-Type:text/html;charset=utf-8'

);

$url

=

'';

$file

=

fopen($url,

"rb");

//只读2字节

如果为(16进制)1f

8b

(10进制)31

139则开启了gzip

;

$bin

=

fread($file,

2);

fclose($file);

$strInfo

=

@unpack("C2chars",

$bin);

$typeCode

=

intval($strInfo['chars1'].$strInfo['chars2']);

$isGzip

=

0;

switch

($typeCode)

{

case

31139:

//网站开启了gzip

$isGzip

=

1;

break;

default:

$isGzip

=

0;

}

$url

=

$isGzip

?

"compress.zlib://".$url:$url;

//

三元表达式

$mierHtml

=

file_get_contents($url);

//获得米尔军事网数据

$mierHtml

=

iconv("gbk","utf-8",$mierHtml);

echo

$mierHtml;