background image

PHP 实例:PHP 中的 file_get_contents 获取远程页面乱码的问题

本文是为大家分享 PHP 中的

file_get_contents

获取远程页面出现乱码的问题解决方法。

PHP 的

file_get_contents

获取远程页面内容,如果是 gzip 编码过的,返回的字符串就是编

码后的乱码
1、解决方法,找个 ungzip 的函数来转换下
2、给你的 url 加个前缀,这样调用

$content

 = 

file_get_contents

("compress.

zlib://

§

".

$url

);

无论页面是否经过 gzip 压缩,上述代码都可以正常工作!
使用 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

;

}