PHPでfile_を使うget_contents()Webページの文字化けしの問題をキャプチャする

809 ワード

符号化の問題が容易であれば、キャプチャされたコンテンツを符号化に変換すればよい$content=iconv(「GBK」,「UTF-8」,$content)では、gzipを開いたページをどのようにキャプチャするか、ページがgzipを開いたとどのように判断するか、キャプチャされたヘッダにContent-Encoding:gzipが含まれている.説明ページの内容はgzip圧縮されており、firebugでページがgzip圧縮を開いているかどうかを確認できます.
以下に、いくつかのソリューションについて説明します.
1、PHPが持っているzlibライブラリを使用して、以下のコードで解決できる.
$data = file_get_contents("compress.zlib://".$url);

2、fileの代わりにcurlを使うget_contents()関数:
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;
}