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

Делаю все как в мануале и в примерах
...
$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
25.06.2005, 18:11
    #33134898
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
ну зачем сразу прикажете ... просто посоветуем :)
...
Рейтинг: 0 / 0
27.06.2005, 11:09
    #33135756
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
Но ведь не на всех серверах она установлена :(
...
Рейтинг: 0 / 0
27.06.2005, 11:43
    #33135859
.-.-.-.-.-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
первое вхождение \r\n\r\n (насколько я знаю некоторые серверы отдают просто \n\n) и есть разделителем.
...
Рейтинг: 0 / 0
27.06.2005, 12:07
    #33135920
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
да вот в том то и дело что там их два с "\r\n" :(
...
Рейтинг: 0 / 0
27.06.2005, 12:32
    #33136003
.-.-.-.-.-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
самое простое (ИМХО) - preg_split с параметром limit (см. мануал)
...
Рейтинг: 0 / 0
27.06.2005, 17:43
    #33136935
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
2ОФФ
$nn="\015?\012\015?\012";
...
Рейтинг: 0 / 0
27.06.2005, 18:02
    #33136972
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
у меня на 2 серверах только через "\r\n"

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

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

?

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

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

?

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

Код: 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
27.06.2005, 18:38
    #33137035
.-.-.-.-.-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
если странички не большие, то можно:
Код: plaintext
1.
2.
$content = file_get_contents($url);
$parts = preg_split("!\r?\n\r?\n!", $content,  3 );
print_r($parts);
...
Рейтинг: 0 / 0
27.06.2005, 18:41
    #33137041
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
да нет, мне нужно POST данные посылать
...
Рейтинг: 0 / 0
27.06.2005, 18:53
    #33137055
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
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
27.06.2005, 19:00
    #33137071
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
про 100 и другие ответы сервера
я уже прочитал раньше ...
...
Рейтинг: 0 / 0
27.06.2005, 19:25
    #33137102
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
Okramпро 100 и другие ответы сервера
я уже прочитал раньше ...Ну так в RFC, если я не ошибаюсь, описано поведение, которого должен придерживаться клиент - вот и придерживайтесь его. Т.е. анализировать, что пришло 100 - придётся.
...
Рейтинг: 0 / 0
27.06.2005, 19:32
    #33137110
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как ПРАВИЛЬНО прочитать заголовок?
спасибо, я так и думал,
но надеялся что не надо будет наново строить велосипед :)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как ПРАВИЛЬНО прочитать заголовок? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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