国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php對gzip文件或者字符串解壓實例參考

2024-09-04 11:50:13
字體:
來源:轉載
供稿:網友

要采集一個網站,目標站采用了gzip壓縮傳輸網頁,本來應該只要發送一個http頭 Accept-Encoding: identity或者干脆不發送這個頭等,就可以使目標站返回沒有經過gzip壓縮的頁面了,不過很不幸,目標站無視客戶端的請求,仍然返回gzip數據,造成亂碼。
 
其實php對gzip解壓很簡單,用內置的gzdecode函數就可以了,不過很可惜我配置了半天也無法支持gzdecode函數,所以只好變通一下:
 
if (!function_exists('gzdecode')) {
function gzdecode ($data) {
$flags = ord(substr($data, 3, 1));
$headerlen = 10;
$extralen = 0;
$filenamelen = 0;
if ($flags & 4) {
$extralen = unpack('v' ,substr($data, 10, 2));
$extralen = $extralen[1];
$headerlen += 2 + $extralen;
}
if ($flags & 8) // Filename
$headerlen = strpos($data, chr(0), $headerlen) + 1;
if ($flags & 16) // Comment
$headerlen = strpos($data, chr(0), $headerlen) + 1;
if ($flags & 2) // CRC at end of file
$headerlen += 2;
$unpacked = @gzinflate(substr($data, $headerlen));
if ($unpacked === FALSE)
$unpacked = $data;
return $unpacked;
}
}
調用方法很簡單:
 
$f=@file_get_contents("http://m.survivalescaperooms.com");
echo gzdecode($f);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清新县| 云龙县| 宁河县| 梁河县| 海安县| 如皋市| 防城港市| 公安县| 兰西县| 镶黄旗| 南安市| 宾阳县| 长沙县| 乌拉特中旗| 盐边县| 保山市| 泸定县| 抚远县| 孝义市| 棋牌| 崇仁县| 承德县| 东明县| 华池县| 五寨县| 日土县| 泽普县| 任丘市| 灵石县| 阳城县| 陇川县| 当雄县| 新泰市| 三门县| 武冈市| 犍为县| 乐亭县| 柏乡县| 古蔺县| 云阳县| 武宣县|