Автор Тема: Вывод зипованной страницы  (Прочитано 3487 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Вывод зипованной страницы
« : 02 Марта 2004, 20:12:57 »
Итак, что мы имеем:
 в начале скрипта
ob_start();
в конце скрипта:
$data=ob_get_contents();
ob_end_clean();
echo 
gzipoutput($data,1,1);

Сама функция сжатия(почти без исправлений взята с vBulletin):

function gzipoutput($text,$level=1,$test=false){
	
	
global 
$HTTP_ACCEPT_ENCODING,$nozip;

	
	
$returntext=$text;

	
	
if (
function_exists("crc32") and function_exists("gzcompress") and !$nozip){
	
	
	
	
if (
strpos(" ".$HTTP_ACCEPT_ENCODING,"x-gzip")) {
	
	
	
	
	
$encoding "x-gzip";
	
	
	
	
	
}
	
	
	
	
if (
strpos(" ".$HTTP_ACCEPT_ENCODING,"gzip")) {
	
	
	
	
	
$encoding "gzip";
	
	
	
	
	
}
	
	
  
	
if (
$encoding) {
	
	
      
header("Content-Encoding: $encoding");
	
	
      
header("Content-Type: text-html\\n\\n");
   
	
	
	
  if(
$test)
	
	
	
  
	
{
	
	
	
	
$replace="Äî ñæàòèÿ-".strlen($text).";Ïîñëå ñæàòèÿ-".strlen(gzcompress($text,$level));
	
	
	
	
$text=str_replace("<!--blabla-->","$replace",$text);
	
	
	
	
}
	
	
      
$size strlen($text);
	
    
	
  
$crc crc32($text);
    
	
	
  
$returntext "\\x1f\\x8b\\x08\\x00\\x00\\x00\\x00\\x00";
	
	
      
$returntext .= substr(gzcompress($text,$level),0,-4);
	
    
	
  
$returntext .= pack("V",$crc);
    
	
	
  
$returntext .= pack("V",$size);
	
	
	
  @
header("Content-Length: ".strlen($returntext)); 
	
	
	
  
	
	
	
  }
  
	
	
	
}else{
	
	
	
echo 
"HUY";exit();
	
	
	
}
	
	
  return 
$returntext;
	
	


Суть траблы:
Mozilla Firebird прекрасно всё понимает, текст зипуется и т.д. и т.п.
А вот IE5x, 6sp1 предлагает сохранить файл, что естественно нельзя, как с этим бороться? :)
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Вывод зипованной страницы
« Ответ #1 : 02 Марта 2004, 20:46:13 »
может быть, посмотреть, чем отличаются заголовки, которые получает браузер от твоего скрипта, и от сервера, с которого показывает нормально?

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Вывод зипованной страницы
« Ответ #2 : 03 Марта 2004, 00:08:42 »
а чо ob_gzhandler ?
ну, будем исповедоваться?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Вывод зипованной страницы
« Ответ #3 : 03 Марта 2004, 00:18:30 »
а варианты с использованием mod_gzip / mod_deflate не подходят ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Вывод зипованной страницы
« Ответ #4 : 03 Марта 2004, 16:33:21 »
RomikChef
Знать бы как :)
Собственно решил проблему, убрал
header("Content-Type: text-html\\n\\n");
Макс
Не подходят, надо учитывать "антинастраиваемость" некоторых сайтов ввиду их бесплатного хосторазмещения
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Вывод зипованной страницы
« Ответ #5 : 03 Марта 2004, 16:36:26 »
Цитировать
AlieN:
Знать бы как

ты не знаешь, как посмотреть НТТР заголовки?
Есть море специальных программ.
часть перечислена в http://faq.phpclub.net/na_tanke
часть можно в любом поисковике найти по запросу HTTP ssniffer

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Вывод зипованной страницы
« Ответ #6 : 03 Марта 2004, 16:40:56 »
RomikChef
Ради интереса, расскажи мне какие заголовки дает эта страница
(http://forums.webscript.ru/showthread.php?s=&threadid=16048)
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Вывод зипованной страницы
« Ответ #7 : 03 Марта 2004, 16:55:16 »
Цитировать
AlieN:
Ради интереса, расскажи мне какие заголовки дает эта страница

http://www.superweb.nl/yukko/headers.txt
Устраивает?
работа в Украине

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Вывод зипованной страницы
« Ответ #8 : 03 Марта 2004, 17:01:13 »
Yukko
Цитировать
Content-Type: text/css; charset=windows-1251

Красота прямо :)
[off]Там кстати данные всех твои кук, так и пароль потерять можно[/off]
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28