Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> gzip uncompress 
V
    Опции темы
console
Дата 19.11.2007, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

Репутация: 2
Всего: 3



Код

// $data - строка содержащая, данные упакованные gzip методом
ob_start();
header("X-Compression: gzip");
header("Content-Encoding: gzip");
header("Content-Length: ".strlen($data));
echo $data;
$data = ob_get_contents();
$uncompressed = gzuncompress($data);
file_put_contents('unc.txt', $uncompressed);
ob_end_clean();

die('<br>done');


Что в итоге: в файле unc.txt пусто, поиски по форуму показали, что не у меня одного такая проблема. Если не делать gzuncompress, то в файл записываются данные, но, как сами понимаете, в непонятном формате. Строчка в die которая не выводится, почему? И как решить проблему с распаковкой данных (мне нужно preg_match сделать) без PEAR и других библиотек?


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
teroni
Дата 19.11.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



А зачем хедеры добавляются?
Может формат $data не тот? gzinflate пробовали использовать?
PM MAIL   Вверх
console
Дата 19.11.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

Репутация: 2
Всего: 3



Формат правильный, считываю страничку в gzip формате, gzinflate пробовал, то же самое.
Без хедеров некорректно отображаются данные. И почему все же не выводится текст после буферизации??


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
teroni
Дата 19.11.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Честно говоря, не могу понять, что требуется сделать...
Расскажите по порядку, откуда берется $data, что с ней нужно сделать, что записать в файл и что выдать клиенту.
А 
Код

<?
header("X-Compression: gzip");
header("Content-Encoding: gzip");
header("Content-Length: 0");
echo '<br>done';
?>

тоже ничего не выведет.. Не надо левые заголовки добавлять!

Это сообщение отредактировал(а) teroni - 19.11.2007, 14:09
PM MAIL   Вверх
console
Дата 19.11.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

Репутация: 2
Всего: 3



Код

$data = GetPage('какой-то_урл.com');

ob_start();
header("X-Compression: gzip");
header("Content-Encoding: gzip");
header("Content-Length: ".strlen($data));
echo $data;
$data = ob_get_contents();
$uncompressed = gzinflate($data);
file_put_contents('unc.txt', $uncompressed);
ob_end_clean();
preg_match('#some_pattern#is', $uncompressed, $matches);
die('<br>done');



GetPage - функция, с помощью curl считывает страницу.
Далее мне надо распаковать gzip строку в обычную, чтобы с помощью preg_match() найти нужную информацию.


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
teroni
Дата 19.11.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



По-моему просто выкинуть лишнее надо!
Код

$data = GetPage('какой-то_урл.com');
$uncompressed = gzinflate($data);
file_put_contents('unc.txt', $uncompressed);
preg_match('#some_pattern#is', $uncompressed, $matches);

PM MAIL   Вверх
console
Дата 19.11.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

Репутация: 2
Всего: 3



Код

$uncompressed = gzuncompress($data);
file_put_contents('unc.txt', $uncompressed);

die('<br>done');


если без хедеров, то выводится:

Код

Warning: gzuncompress() [function.gzuncompress]: data error in C:\webservers\home\localhost\www\yaparser2mail\scripts\translate_ru.php on line 30

done


Добавлено через 41 секунду
с gzinflate тоже ошибка  smile

Добавлено через 3 минуты и 4 секунды
Заголовки ответа сервера:

HTTP/1.x 200 OK
Server: nginx/0.5.33
Date: Mon, 19 Nov 2007 11:16:18 GMT
Content-Type: text/html; Charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Powered-By: ASP.NET
Set-Cookie: UID=11315609239405; expires=Tue, 18-Nov-2008 21:00:00 GMT; path=/
Set-Cookie: LastVisit=19%2E11%2E2007; expires=Tue, 18-Nov-2008 21:00:00 GMT; path=/
Set-Cookie: lang=ru; expires=Wed, 18-Nov-2037 21:00:00 GMT; path=/
Cache-Control: private
Content-Encoding: gzip


настораживает chunked


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
teroni
Дата 19.11.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Чтобы chunked`а не было проще всего слать запросы через протокол HTTP/1.0, чтобы gzip от сайтов расшифровывать gzinflate используется, либо в запросах указывается, что gzip не принимаем.
PM MAIL   Вверх
console
Дата 19.11.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

Репутация: 2
Всего: 3



teroni, спасибо за совет )  smile 


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
kasmanaft
Дата 19.11.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 16.11.2007

Репутация: 1
Всего: 2



Попробуйте вот так:
Код
$data = GetPage('какой-то_урл.com');
$uncompressed = gzinflate(substr($data, 10, -8));
file_put_contents('unc.txt', $uncompressed);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.