Распаковка страницы в gzip

<?php
/**
 * Распаковка страницы в gzip
 * автор: Nc_Soft
 * 29.05.09
 * 
*/

//получаем страницу, где поддерживается сжатие
$ch=curl_init('http://snippets.pp.ru/');

//настраиваем, чтобы сеанс выводился не в браузер, а в переменную
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//заголовки тут ни к чему
//curl_setopt($ch, CURLOPT_HEADER, 1);

//задаем заголовок для сжатия Accept-Encoding: gzip, deflate
//и еще несколько заголовков за компанию (необязательно)
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept-Encoding: gzip, deflate',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
));

//выполняем запрос
$res = curl_exec($ch);

//закрываем сеанс cURL
curl_close($ch);

//в переменной $res у нас сжатые данные в "кракозябрах", проверка
echo $res;

//разделитель для читабельности
echo "<br /><br />\n\n";

/*самое важное: чтобы раскодировать данные надо применить функцию
gzinflate, обрезав при этом первые 10 байт!*/
echo gzinflate(substr($res, 10));

/*
Результат можно увидеть запустив snippet.
Что нам это дает?
С серверов, где поддерживается сжатие можно тащить примерно в 10 раз
меньше данных, чем раньше, тоесть грабберы будут работать шустрее.

Ну и конечно, snippets не появляются из ниоткуда, 
каждый snippet решает проблему из "жизни", пример:
echo file_get_contents('http://radiorecord.ru/charts/');
Почему-то хоть убей выдается не вся страница, а примерно половина.
Запрос с использованием заголовка Accept-Encoding: gzip, deflate
позволяет получить страницу целиком, хоть и в сжатом виде.
*/