PDA

Просмотр полной версии : Сокеты and max_execution_error


Велемир
02.02.2009, 16:01
<?php

$host = "www.softtime.ru";
$port = "80";
$sock = fsockopen($host,$port,$errno);
$path = "admin";
$ua = "fuck";

$req = "HEAD /$path HTTP/1.1\r\n";
$req .= "Accept: */*\r\n";
$req .= "Accept-Language: uk\r\n";
$req .= "User-Agent: $ua\r\n";
$req .= "Host: $host\r\n";
$req .= "Connection: Close\r\n";


if(!$sock) {

echo $errno($errstr);

}

fputs($sock,$req);

while(!feof($sock)) {

$x .= fgets($sock,128);

}


echo $x;

fclose($sock);

?>

Где ошибко?(((

groundhog
02.02.2009, 16:32
Для конкретного примера должно быть:

$req .= "Connection: Close\r\n\r\n";

groundhog
02.02.2009, 16:33
и поставь set_time_limit(0); в начале

Велемир
02.02.2009, 16:41
А почему не \r\n ?

oRb
02.02.2009, 16:46
Потому что

Заголовки должны отделяться от тела сообщения хотя бы одной пустой строкой (с) http://ru.wikipedia.org/wiki/Http

groundhog
02.02.2009, 16:51
Велемир:


generic-message = start-line
*message-header
CRLF
[ message-body ]

start-line = Request-Line | Status-Line

http://lib.ru/WEBMASTER/rfc2068/rfc2068rus.txt

Хидеры от тела отделяются пустой строкой \r\n даже при отсутствии (то есть при пустом) тела сообщения.

PaCo
02.02.2009, 17:00
Также желательно указать какой запрос
$req = "HEAD /$path HTTP/1.1\r\n";
например
$req = "GET /$path HTTP/1.1\r\n";

Велемир
02.02.2009, 17:22
Пасиппи вам,люди:)

Велемир
02.02.2009, 17:52
А заголовок и хост можно тупо послать? без connection-a и т.д,а то я не догоню зачем они ))мб для таймаутов...