fsockopen()

Discussion in 'PHP' started by P3L3NG, 6 Sep 2008.

  1. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    $fp = fsockopen("site.ru/$i", 80, $errno, $errstr, 10);

    $i - ссылка внутри сайта

    получается допустим

    site.ru/1.html:80

    как сделать, чтобы стало

    site.ru:80/1.html

    ???
     
  2. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    437
    Reputations:
    90
    зачем? можно вопрос? ты вкурсе что эта за функция?
    как она откроет сокет соединение без порта? т.е. незнаю порта. или тебе для других целей
     
    1 person likes this.
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Возьми пример из мануала и посмотри как...
    PHP:
    <?php
    $fp 
    fsockopen("www.example.com"80$errno$errstr30);
    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($fp128);
        }
        
    fclose($fp);
    }
    ?>

    А твой вариант невозможен впринципе
     
    _________________________
    1 person likes this.
  4. diehard

    diehard Elder - Старейшина

    Joined:
    30 Sep 2007
    Messages:
    442
    Likes Received:
    266
    Reputations:
    15
    Ты напейсал бред, первый параметр при открытии сокета fsockopen() - это хост, нужно указать только "site.ru" без всяких "/$i".
    Путь "/$i" указывается в HTTP-запросе, который передается через fputs()
     
  5. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    http://site.ru:80 это хост с указанием порта. Так делается если порт подключения отличен от стандартного 80.
    Поэтому
    PHP:
    <?php
    $fp 
    fsockopen('site.ru'80$errno$errstr30);
    $heads "GET /1.html HTTP/1.1\r\n";//или Post
    $heads .= ''//etc
    fputs($fp$heads);
    ?>
    или я не так понял?
     
    1 person likes this.
  6. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    ашибка! В конце заголовков нужно ставить \r\n\r\n

    тсу еще надо понимать hello world :)
     
    3 people like this.
  7. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Не всегда ))
     
  8. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    всем спасибо. не так функцию понял=)