powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как ПРАВИЛЬНО прочитать заголовок?
17 сообщений из 17, страница 1 из 1
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33134687
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не судите строго если я чтото не дочитал.

Делаю все как в мануале и в примерах
...
$fp = fsockopen( ...
...
fputs(
...

считываю header и content в такие переменные $hs и $s так

Код: plaintext
1.
2.
3.
4.
5.
$nn="\r\n";

while(($hs_=fgets($fp, 128 ))!=$nn && !feof($fp)) $hs .= $hs_;
		
while (!feof($fp)) $s .= fgets($fp,  128 );


Работает все прекрасно,
но я столкнулся с тем что мне приходят ДВА header-a, а не один :(

а именно

HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.0
Date: Fri, 24 Jun 2005 15:34:28 GMT
X-Powered-By: ASP.NET

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Fri, 24 Jun 2005 15:34:28 GMT
X-Powered-By: ASP.NET
Connection: close
Content-type: text/html
X-Powered-By: PHP/4.3.12-dev

Скажите пожалуйста так как правильно прочитать заголовок ?
нужно ещё обрабатывать HTTP/1.1 100 и HTTP/1.1 200 ?
Или прикажите пользоватся CURL ?
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33134898
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну зачем сразу прикажете ... просто посоветуем :)
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33135756
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но ведь не на всех серверах она установлена :(
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33135859
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
первое вхождение \r\n\r\n (насколько я знаю некоторые серверы отдают просто \n\n) и есть разделителем.
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33135920
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да вот в том то и дело что там их два с "\r\n" :(
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33136003
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
самое простое (ИМХО) - preg_split с параметром limit (см. мануал)
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33136935
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ОФФ
$nn="\015?\012\015?\012";
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33136972
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня на 2 серверах только через "\r\n"

а что такое 2ОФФ ?
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33136998
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тогда нужно смотреть разные комбинации
"\r\n" или "\r\n\r\n" ?

Код: plaintext
1.
preg_split('/[\r\n]+/',$content)

?

и почему $nn="\015?\012\015?\012"; не совсем к теме ?
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33137014
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Okramтогда нужно смотреть разные комбинации
"\r\n" или "\r\n\r\n" ?

Код: plaintext
1.
preg_split('/[\r\n]+/',$content)

?

А можно посмотреть реальный пример HTTP-ответа ?
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33137026
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пока что зделал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
		$nn="\r\n";

		$sa = array();
		$ha = array();
		
		while (!feof($fp)) {

			$s = '';
			
			while(($s_=fgets($fp, 128 ))!=$nn && !feof($fp)) $s .= $s_;
		
			if ( ($p=strpos( $s , 'HTTP/' ))!==FALSE && $p== 0  ) {
				$ha[] = $s;
			} elseif( trim($s)!='' ) {
				$sa[] = $s;
			}
			
		}
		
		fclose($fp);	

и результат array($ha,$sa)

Код: plaintext
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.
Array
(
    [ 0 ] => Array
        (
            [ 0 ] => HTTP/ 1 . 1   100  Continue
Server: Microsoft-IIS/ 5 . 0 
Date: Mon,  27  Jun  2005   12 : 36 : 56  GMT
X-Powered-By: ASP.NET

            [ 1 ] => HTTP/ 1 . 1   200  OK
Server: Microsoft-IIS/ 5 . 0 
Date: Mon,  27  Jun  2005   12 : 36 : 56  GMT
X-Powered-By: ASP.NET
Connection: close
Content-type: text/html
X-Powered-By: PHP/ 4 . 3 . 12 -dev

        )

    [ 1 ] => Array
        (
            [ 0 ] => some content
        )

)
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33137035
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если странички не большие, то можно:
Код: plaintext
1.
2.
$content = file_get_contents($url);
$parts = preg_split("!\r?\n\r?\n!", $content,  3 );
print_r($parts);
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33137041
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да нет, мне нужно POST данные посылать
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33137055
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
http://www.faqs.org/rfcs/rfc2616.html10.1.1 100 Continue

The client SHOULD continue with its request. This interim response is used to inform the client that the initial part of the request has been received and has not yet been rejected by the server. The client SHOULD continue by sending the remainder of the request or, if the request has already been completed, ignore this response. The server MUST send a final response after the request has been completed. See section 8.2.3 for detailed discussion of the use and handling of this status code.
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33137071
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
про 100 и другие ответы сервера
я уже прочитал раньше ...
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33137102
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Okramпро 100 и другие ответы сервера
я уже прочитал раньше ...Ну так в RFC, если я не ошибаюсь, описано поведение, которого должен придерживаться клиент - вот и придерживайтесь его. Т.е. анализировать, что пришло 100 - придётся.
...
Рейтинг: 0 / 0
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
    #33137110
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, я так и думал,
но надеялся что не надо будет наново строить велосипед :)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как ПРАВИЛЬНО прочитать заголовок?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]