Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   fsockopen() (https://forum.antichat.xyz/showthread.php?t=83802)

P3L3NG 06.09.2008 10:23

fsockopen()
 
$fp = fsockopen("site.ru/$i", 80, $errno, $errstr, 10);

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

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

site.ru/1.html:80

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

site.ru:80/1.html

???

Sn@k3 06.09.2008 10:26

зачем? можно вопрос? ты вкурсе что эта за функция?
как она откроет сокет соединение без порта? т.е. незнаю порта. или тебе для других целей

Kaimi 06.09.2008 10:28

Возьми пример из мануала и посмотри как...
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);
}
?>

А твой вариант невозможен впринципе

diehard 06.09.2008 15:37

Цитата:

Сообщение от P3L3NG
$fp = fsockopen("site.ru/$i", 80, $errno, $errstr, 10);

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

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

site.ru/1.html:80

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

site.ru:80/1.html

???

Ты напейсал бред, первый параметр при открытии сокета fsockopen() - это хост, нужно указать только "site.ru" без всяких "/$i".
Путь "/$i" указывается в HTTP-запросе, который передается через fputs()

.:EnoT:. 06.09.2008 16:25

Цитата:

Сообщение от P3L3NG
$fp = fsockopen("site.ru/$i", 80, $errno, $errstr, 10);

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

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

site.ru/1.html:80

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

site.ru:80/1.html

???

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);
?>

или я не так понял?

Chaak 06.09.2008 16:42

Цитата:

Сообщение от .:EnoT:.
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);
?>

или я не так понял?

ашибка! В конце заголовков нужно ставить \r\n\r\n

тсу еще надо понимать hello world :)

.:EnoT:. 06.09.2008 16:52

Цитата:

Сообщение от ChaaK
ашибка! В конце заголовков нужно ставить \r\n\r\n

Не всегда ))

P3L3NG 06.09.2008 17:34

всем спасибо. не так функцию понял=)


Время: 00:53