|
|
|
| Задача:
Есть два скрипта - один читает из базы данные по запросу, который ему посылает второй скрипт. И передает эти данные в сжатом виде, через функцию gzcompress.
То есть в первом скрипте:
<?php
/* Здесь читаем данные из БД, помещаем их в массив $out */
header("Content-Encoding: gzip");
echo gzcompress(serialize($out), 9);
?>
|
Во втором скрипте:
<?php
/* Пытаемся сэмулировать браузер */
$fp = fsockopen("domain.loc", 80, $errno, $errstr, 5);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$data = 'sql='.urlencode($sql).'&assocfieldid='.$assocfieldid;
$out = "GET /modules/getibasedata.php?$data HTTP/1.1\r\n";
$out .= "Host: domain.loc\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
$ser = "";
$buf = "";
while (!feof($fp)) {
$buf = fgets($fp, 1024);
$ser .= $buf;
}
fclose($fp);
}
$ser = strstr($ser, "\r\n\r\n");
$ser = gzuncompress($ser); // ТУТ вылазит Warning: gzuncompress() [function.gzuncompress]: data error
?>
|
Данные в $ser есть и они не идентичны тем, что в первом скрипте. То есть они передаются. Но распаковать их не получается.
Как правильно в таком случае получить двоичные данные? | |
|
|
|
|
|
|
|
для: HaJIuBauKa
(16.01.2009 в 10:37)
| | Видимо, нужно сравнить сжатые данные? | |
|
|
|
|
|
|
|
для: Trianon
(16.01.2009 в 10:50)
| | Разобрался: было два лишних перевода строки в начале полученных данных. | |
|
|
|