国产探花免费观看_亚洲丰满少妇自慰呻吟_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://www.survivalescaperooms.com");
echo gzdecode($f);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福清市| 台前县| 隆德县| 安化县| 香格里拉县| 镇沅| 伽师县| 松滋市| 柞水县| 北宁市| 嘉禾县| 湖南省| 周口市| 雷波县| 台州市| 泗洪县| 奇台县| 隆昌县| 原阳县| 东平县| 天镇县| 甘洛县| 巴东县| 新宁县| 彝良县| 玉林市| 鲁山县| 林西县| 康马县| 金沙县| 松桃| 海城市| 沈阳市| 长春市| 建昌县| 腾冲县| 莫力| 土默特左旗| 库伦旗| 屯留县| 辽源市|