php读取远程gzip压缩网页的方法
程序员文章站
2024-02-03 12:12:04
今天在调取一家商城的页面信息时候,使用file_get_contents抑或curl:
复制代码 代码如下:
$url = 'http://www.xxx.com/...
今天在调取一家商城的页面信息时候,使用file_get_contents抑或curl:
复制代码 代码如下:
$url = 'http://www.xxx.com/21/?type=23′;
$temp = file_get_contents($url);
echo $temp;
都得到一片乱码,查看了许多内容,包括页面的header信息,发现原来页面使用了。
类似的信息,即content-encoding为gzip,即该站点开启了gzip压缩。这里的解决方案有多种,当然如果你使用file_get_contents的话,可以这样修改:
复制代码 代码如下:
file_get_contents("compress.zlib://".$url);
或者使用curl来完成:
复制代码 代码如下:
function curl_get($url, $gzip=false){
$curl = curl_init($url);
curl_setopt($curl, curlopt_returntransfer, 1);
curl_setopt($curl, curlopt_connecttimeout, 10);
if($gzip) curl_setopt($curl, curlopt_encoding, "gzip"); // 关键在这里
$content = curl_exec($curl);
curl_close($curl);
return $content;
}
同时,参考手册上面的解法,还可以对保存gzip类型的字符串进行处理如下:
复制代码 代码如下:
function gzdecode($data){
$g=tempnam(‘/tmp','ff');
@file_put_contents($g,$data);
ob_start();
readgzfile($g);
$d=ob_get_clean();
return $d;
}
上一篇: 详解Java中的不可变对象
下一篇: 如何写好一个Spring组件的实现步骤
推荐阅读
-
php读取远程gzip压缩网页的方法
-
php压缩html网页代码(清除空格、换行符、制表符、注释标记等)的方法
-
php判断服务器是否支持Gzip压缩的方法
-
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法,jsongzip_PHP教程
-
PHP file_get_contents函数读取远程数据超时的解决方法,c函数超时
-
PHP中开启gzip压缩的2种方法_php技巧
-
php使用gzip压缩传输js和css文件的方法,_PHP教程
-
PHP file_get_contents函数读取远程数据超时的解决方法
-
apache php gzip压缩输出的实现方法,apachegzip_PHP教程
-
php使用gzip压缩传输js和css文件的方法