Heim > Backend-Entwicklung > PHP-Tutorial > php读取远程gzip压缩网页的方法_PHP

php读取远程gzip压缩网页的方法_PHP

WBOY
Freigeben: 2016-05-31 13:18:39
Original
861 Leute haben es durchsucht

今天在调取一家商城的页面信息时候,使用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;  
}

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage