Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Unable to find the socket transport "http"


Автор: MAQrus 16.3.2008, 08:07
При обращении к fsockopen() вылазит вот это:

Warning: fsockopen() [function.fsockopen]: unable to connect to http://ya.ru:80 (Unable to find the socket transport "http" - did you forget to enable it when you configured PHP?) in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\t.php on line 45

Не подскажите, как это решается?

Автор: Feldmarschall 16.3.2008, 08:26
Задавая вопрос, следует приводить код, который вызвал сообщение об ошибке.
Используя функцию РНР, следует читать её описание в документации. И подставлять в переметры то, что там написано.

Автор: MAQrus 16.3.2008, 08:51
Извиняюсь, вот код:

Код

     $header = 'GET / HTTP/1.1 \r\n';
     $header .= 'Host: ya.ru \r\n';
     $header .= 'Accept: */* \r\n';
     $header .= 'Accept-Language: ru \r\n';
     $response = '';
     $sock = fsockopen('http://ya.ru', 80, $errno, $errstr, 30);
     if(!$sock) die('Не могу соединиться!');
     if(!fwrite($sock, $header)) die('Не могу послать данные!');
     while($res = fread($sock, 1024)) 
           $response .= $res;


Описания функции читал, но не могу понять, где моя ошибка, может при установке PHP где-то накосячил?

Автор: Sannis 16.3.2008, 10:57
Плохо читали, до примера видимо не дошли:
Цитата

Example#1 fsockopen()
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";

    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

Было бы крайне странно, если бы можно было одновременно указывать и http:// etc. и номер порта.

Добавлено через 2 минуты и 15 секунд
Перед доменом можно поставить и имя протокола, но там более низкий уровень, который вам врядли нужен, поможет http://ru2.php.net/manual/en/function.stream-get-transports.php.

Автор: MAQrus 16.3.2008, 13:53
Да, надо было сразу этот пример использовать.. Спасибо! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)