Привет всем. Встала у меня задача получить курлом страничку сжатую в gzip и разумеется "разжать". Казалось бы все просто
Но срабатывает только в половине из случаев.
Нашел на php.net такой скрипт, подпись к которому обещает, что скрипт сделает все как надо (ну я мог ошибиться, если исходить из уровня моего английского)
PHP:
скопировать код в буфер обмена
function decode_gzip($h,$d,$rn="\r\n"){ if (isset($h['Transfer-Encoding'])){ $str = ''; $ofs=0; do{ $str .= substr($d,$p+$lrn,$len); $ofs = $p+$lrn*2+$len; }while ($d[$ofs]!=='0'); $d=$str; } return $d; }
Но либо я чего то не понимаю (что скорее всего - не станут же вату выкладывать там где я его взял), либо скрипт халтура. hexdec() возвращает число, которое ну никак не клеится с substr(). И потом $d неожиданно рассматривается как массив, хотя строкой ему на первый взгляд лучше. Подскажите, рабочий ли скрипт? И вообще, на словах, какие операции нужно проделать с сжатым трафиком, чтобы gzinflate () в 100% перекодировала?
|