Опять запутался в кодировках Скриптом получаю страничку и сохраняю ее содержимое в файл, но в файле сплошная абракадабра типа такой: Код (Text): V‡ґП$®^"јИґpZz#«OJ„,H7|к{Аџ+¬р®L†wЁв"(pq™QFЯФ†уhРЏa'mлW ъ'©кµ^8HOdќѕEFЌЪГчы¤MАъдР‡хЖ>µАP0ј•™КsNЉЪњШ®Vn‹јIFрЩІЋЏґ…&ШЇ}–Л2лЋ\.™ЈЋВЃШЗ’ЄЮxшY`M;Ѕё]бЋ‰<AЭ¶е 'цY Z=!эЁ5bЭћј:qToа%Uґл1вx4ЉЪ–ЧФN„Гяёе‰fђГвG№‹(< В заголовках странички указано, что она в UTF-8, но ставлю в блокноте UTF-8 и все равно вижу абракадабру. Подскажите, как сохранить данные полученные в UTF-8 в какой-нибудь кирилистической кодировке понятной для просмотра. Пробовал разные варианты с функцией iconv, но не помогло. В браузере же эта страничка открывается хорошо и понятно.
А это мысль! А я все гадаю, почему при сохранении такой малый размер, хотя исходный код приличной длины! Попробую пойти по этому пути, тем более что mb_convert_encoding пока подключить не получилось. РНР при перезагрузке ругается, что не может найти php_mcrypt.dll (хотя вроде есть и в системную паку скопирован) и выдает ошибку Call to undefined function mb_convert_encoding() in
А страничка точно зазипована! Переименовал тоталкомандером в .zip распаковал и увидел нужное! Подскажите, как налету раскодировать и сохранять в раскодированном виде?
Кажись установил библиотеку ZIP. Как теперь лучше действовать? Зип архив находится в переменной. Как эти данные в переменной распаковать и сохранить на диск? Я с ним еще не работал.
Для этого использую функцию: PHP: $unzip=gzuncompress($zip); Но выдает ошибку: gzuncompress() [function.gzuncompress]: data error in Что не так?
ммм ну вот как у меня контент сжимается PHP: <? function checkgzip(){ if (headers_sent() || connection_aborted()){ return 0; } if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) return "x-gzip"; if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) return "gzip"; return 0; } function gzip($level=2,$noprin=0){ @header ("Last-Modified: " . date('r', time()-60*60*10) ." GMT"); $ENCODING = checkgzip(); if ($ENCODING){ $info = "\n<!-- Сжатие: $ENCODING -->\n"; $Contents = ob_get_contents(); ob_end_clean(); $info.= "<!-- Размер файла до сжатия: ".strlen($Contents)." байт "; $info.= "После сжатия: ". strlen(gzcompress($Contents, $level)). " байт -->"; if (!$noprin) $Contents .= $info; header("Content-Encoding: $ENCODING"); $print="\x1f\x8b\x08\x00\x00\x00\x00\x00"; $Size = strlen($Contents); $Crc = crc32($Contents); $Contents = gzcompress($Contents, $level); $Contents = substr($Contents, 0, strlen($Contents) - 4); $print.= $Contents; $print.= pack('V', $Crc); $print.= pack('V', $Size); header("Content-length: ".strlen($print)); print $print; exit; }else{ ob_end_flush(); exit; } } ?>
блудный сын а если я так скажу Код (Text): Пред. CLXXXIX. Функции сжатия Zlib След. -------------------------------------------------------------------------------- gzuncompress (PHP 4 >= 4.0.1, PHP 5) gzuncompress — Распаковывает строку Описание string gzuncompress ( string $data [, int $length] ) Распаковывает строку. Список параметров data Данные, сжатые функцией gzcompress(). length Максимальная длина данных для распаковки. Возвращаемые значения Распакованные данные или FALSE в случае ошибки. Функция сообщит об ошибке также в случае, когда распакованные данные длиннее в более, чем 32768 или length раз сжатых. Смотрите также gzcompress() gzinflate() gzdeflate() gzencode()
kostyl, намекаешь на то, что я не указал размер переменной? Так я пробовал и с длиной, результат тот же - ошибка. $unzip=gzuncompress($zip, strlen($zip)); А без указания размера разве он не полностью подставляется?
Вот: Код (Text): HTTP/1.1 200 OK Date: Tue, 21 Oct 2008 12:26:39 GMT Server: Apache/1.3.29 (Unix) mod_perl/1.29 mod_deflate/1.0.21 rus/PL30.19 Set-Cookie: ***** Cache-Control: private Content-Type: text/html; charset=utf-8 Connection: close Transfer-Encoding: chunked Content-Encoding: gzip
Но в принципе, я проблему решил. Оказалось если серверу не посылать: Код (Text): $headers .= "Accept-Encoding: gzip, deflate, compress;q=0.9\r\n"; т.е. не сообщать, что понимаешь сжатие, то он отдает ответ не в сжатом виде который уже можно читать нормально... Но если Вы все же поможете разобраться и с gzip, то возражать не буду