php读取远程gzip压缩网页的方法
当遇到远程的gzip压缩网页时,常规的远程获取方法可能会得到乱码结果。本文将介绍如何在PHP中读取远程gzip压缩网页的方法,以解决这一问题。对于需要使用此功能的朋友来说,这是一个很好的参考。
在尝试获取远程网页内容时,我们可能会使用file_get_contents或curl等函数。例如,以下代码是使用file_get_contents的示例:
```php
$url = '
$temp = file_get_contents($url);
echo $temp;
```
如果页面使用了gzip压缩,上述代码可能会输出乱码。这是因为页面内容在传输前已经被压缩。为了解决这个问题,我们需要使用特殊的方法来获取和解压这些内容。
一种解决方案是使用file_get_contents函数结合zlib扩展来处理gzip压缩的内容。修改后的代码如下:
```php
$url = '
$content = file_get_contents("press.zlib://".$url);
echo $content;
```
另一种解决方案是使用curl来完成。我们可以设置一个curl选项来自动处理gzip压缩的内容。以下是使用curl的示例代码:
```php
function curl_get($url, $gzip=false){
$curl = curl_init($url);
curl_set($curl, CURLOPT_RETURNTRANSFER, 1);
curl_set($curl, CURLOPT_CONNECTTIMEOUT, 10);
if($gzip) curl_set($curl, CURLOPT_ENCODING, "gzip"); // 这里是关键
$content = curl_exec($curl);
curl_close($curl);
return $content;
}
```
在上述代码中,当$gzip参数为true时,curl会自动处理gzip压缩的内容。这样我们就可以获取到正确的页面内容了。如果需要对保存下来的gzip类型的字符串进行处理,还可以使用以下函数:
```php
function gzdecode($data){
$g=tempnam('/tmp','ff');
@file_put_contents($g,$data);
ob_start();
readgzfile($g);
$d=ob_get_clean();
return $d;
}
```上述函数可以将gzip压缩的字符串进行解压并返回解压后的内容。这些函数可以帮助我们有效地处理远程的gzip压缩网页内容,确保我们能够正确获取和显示这些内容。希望这些解决方案能对遇到类似问题的朋友有所帮助。
编程语言
- php读取远程gzip压缩网页的方法
- JS实现淡入淡出图片效果的方法分析
- .net出现80080005错误的解决办法分享
- jquery,js简单实现类似Angular.js双向绑定
- 写一段简单的PHP建立文件夹代码
- JS判断来路是否是百度等搜索索引进行弹窗或自动
- ASP.NET中将声音文件添加到资源中并进行播放的方
- jQuery聚合函数实例
- 常用正则表达式大全(金钱,非负整数,正整数,邮箱
- 基于ThinkPHP删除目录及目录文件函数
- 老生常谈angularjs中的$state.go
- mysql 5.7.13 winx64安装配置方法图文教程
- sqlserver游标使用步骤示例(创建游标 关闭游标)
- Codeigniter出现错误提示Error with CACHE directory的解决
- ASP.NET简化编辑界面解决思路及实现代码
- 关于静态页生成问题 突破form数量限制