fsockopen > fgets Каким способом вы отсекли бы заголовки ответа?

JSergRu

..ιilliιlιiιliιllilιι..
Есть такой скриптик
PHP:
        $fp = fsockopen("b.localhost", 80, $errno, $errstr, 30);
        if (!$fp) 
        {
            echo "$errstr ($errno)<br />\n";
        } 
        else 
        {
            $out = "";
            $out .= "GET /?g=g HTTP/1.1\r\n";
            $out .= "Host: b.localhost\r\n";
            $out .= "Connection: keep-alive\r\n";
            $out .= "\r\n";
            fwrite($fp, $out);
            // fputs($fp, $out);
            while (!feof($fp)) 
            {
                echo fgets($fp, 1024);
            }
            fclose($fp);
        }
который обращается к скрипту
PHP:
<? var_dump($_GET);
и выводит такую картинку
HTTP/1.1 200 OK
Date: Thu, 21 Feb 2013 06:01:38 GMT
Server: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.13
X-Powered-By: PHP/5.3.13
Content-Length: 39
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=windows-1251

array(1) {
["g"]=>
string(1) "g"
}
Вопрос, наверно банальный, но тем не менее на простые вопросы тут даются, порой, очень интересные и полезные ответы.
Каким способом Вы бы отсекли заголовки ответа?
PHP:
$result = explode("\r\n",$fgets_str, 1); // лучший ли вариант?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Все заголовки отсекаются двойным CLRF подряд. Лучше всего чем нибудь типа strtok бить, или через strpos() +
 

Вурдалак

Продвинутый новичок
Установи в заголовке HTTP/1.0 для начала, ты не сможешь корректно реализовать HTTP/1.1.

PHP:
explode("\r\n\r\n", $response, 2)
 

radioheaded

PHP нуб
На мой взгляд, лучший вариант — использовать curl, если это возможно.
 
Сверху