Как отделить headers от contents?

grey109

Новичок
Как отделить headers от contents?

С помощью fsockopen я скачиваю страницу с другого сервера. Само собой сервер отдает заголовки, а затем и саму страницу.

Вопрос: как отделить заголовки от страницы, и вывести на экран только полученную страницу?
 

inTox

вёбных дел мастер
grey109, может тебе в сторону CURL посмотреть?
 

LAMborginy

Guest
PHP:
<?php

$headers = Array();
$source = "";
$end_head = 0;
$str = "";

$fp = fsockopen("yandex.ru","80");
if ($fp) {
	fputs($fp,"GET / HTTP/1.1\r\nHost: yandex.ru\r\nConnection: close;\r\n\r\n");
	while (!feof($fp)) {
		$str = fgets($fp,1024);

		if ($str == "\r\n" || $end_head == 1) {
			while (!feof($fp)) {
				$source .= fgets($fp,1024);
			}
			$end_head = 1;
		} else {
			if (preg_match("%([^ ]+): (.*)\s%",$str,$arr)) {
				$headers[$arr['1']] = $arr['2'];
			} else {
				$headers[] = trim($str);
			}
		}
	}

	#print_r($headers);
	#echo nl2br(htmlspecialchars($source));

	while (list($k,$v) = each($headers)) {
		if (preg_match("%^[^0-9]%",$k)) {
			header($k.": ".$v."\r\n");
		}
	}
	echo $source;
}

?>
 

Фанат

oncle terrible
Команда форума
LAMborginy, а на два экрана слабо растянуть задачу отлова идущих подряд двух переводов строк?
Я думаю, такому таланту, как ты, это по плечу. Продемонстрируй.
 

LAMborginy

Guest
Фанат а зачем?
Помоему из примера, который делает немного больше можно без труда выудить этот отлов.

что автору я думаю по плечу. =)
 

Demiurg

Guest
Можно было еще дать исходники браузера, он тоже как то отлавливает хидеры.
 
Сверху