0

0

curl 和 file_get_contents 抓取网页乱码的解决之道 filegetcontents超时 js file get contents wp file get contents

php中文网

php中文网

发布时间:2016-07-29 08:52:42

|

1152人浏览过

|

来源于php中文网

原创

    今天用 curl_init 函数抓取搜狐的网页时,发现采集的网页时乱码,经过分析发现原来是服务器开启了gzip压缩功能。只要往函数 curl_setopt 添加多个选项 curlopt_encoding 解析 gzip 就可以正确解码了。
    还有如果抓取的网页时 gbk 编码,但是脚本确是 utf-8 编码,还得把抓取的网页再用函数 mb_convert_encoding 转换下。
    $tmp = sys_get_temp_dir();
    $cookiedump = tempnam($tmp, 'cookies');
    $url = 'http://tv.sohu.com';
    $ch = curl_init();
    curl_setopt ($ch, curlopt_url, $url);
    curl_setopt ($ch, curlopt_header, 1);// 显示返回的header区域内容
    curl_setopt ($ch, curlopt_followlocation, 1); // 使用自动跳转
    curl_setopt ($ch, curlopt_timeout, 10);// 设置超时限制
    curl_setopt ($ch, curlopt_returntransfer, 1); // 获取的信息以文件流的形式返回
    curl_setopt ($ch, curlopt_connecttimeout,10);// 链接超时限制
    curl_setopt ($ch, curlopt_httpheader,array('accept-encoding: gzip, deflate'));//设置 http 头信息
    curl_setopt ($ch, curlopt_encoding, 'gzip,deflate');//添加 gzip 解码的选项,即使网页没启用 gzip 也没关系
    curl_setopt ($ch, curlopt_cookiejar, $cookiedump);  // 存放cookie信息的文件名称
    $content = curl_exec($ch);
    // 把抓取的网页由 gbk 转换成 utf-8 
    $content = mb_convert_encoding($content,"utf-8","gbk");
?>
    $url = 'http://tv.sohu.com';
    // 只要添加 compress.zlib 选项,即使服务器启用了gzip 压缩功能,就能够解码了
    $content = file_get_contents("compress.zlib://".$url);
    // 把抓取的网页由 gbk 转换成 utf-8 
    $content = mb_convert_encoding($content,"utf-8","gbk");
?>
原文:http://woqilin.blogspot.com/2014/05/curl-filegetcontents.html

以上就介绍了curl 和 file_get_contents 抓取网页乱码的解决之道,包括了file_get_contents方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关专题

更多
C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

8

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

13

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

6

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

5

2026.01.15

php图片上传教程汇总
php图片上传教程汇总

本专题整合了php图片上传相关教程,阅读专题下面的文章了解更多详细教程。

2

2026.01.15

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号