Помогите, кто может с fsockopen

OracleH2

Новичок
Помогите, кто может с fsockopen

Искал по форуму, но похоже ничего похожего до меня не спрашивали.

Проблема такая: У меня есть файлик, который выдает количество объектов в базе по запросу. Как пример:

www.sait/scriptpoisk.php?intim=bublik

Выдает список бубликов из базы с описаниями каждого бублика.

www.sait/scriptpoisk.php?intim=bublik&countonly=1

Выдает только количество бубликов. (То есть буз каких бы то ни было тегов... вообще ничего - только 1 цифра и все)

Зачем это нужно:

Этот файл запрашивается с другого хоста на предмет того есть ли у меня бублики (вариант обращения к скрипту №2). и если есть, то дает пользователю ссылку на мой сайт в виде обращения к скрипту №1.

Причем обращается он с этого хоста к сайту, вернее к этому скрипту и открывает его через fsockopen() один в один - пример в документации. Вот только при обращении к моему скрипту у него не получается, т.к. в результате работы высвечивается не только количество бубликов у меня, но и заголовки http. То есть результат нулевой. Вот то, что выдает браузер
PHP:
HTTP/1.1 200 OK Date: Fri, 17 Feb 2006 20:25:20 GMT Server: Apache/1.3.33 (Unix) Cache-Control: max-age=0 Expires: Fri, 17 Feb 2006 20:25:20 GMT Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=windows-1251 1001
Вот пример как обращаются к моему скрипту.

PHP:
<?php
$fp = fsockopen("www.sait", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET /scriptpoisk.php?intim=bublik&countonly=1 HTTP/1.1\r\n";
    $out .= "Host: [url]www.site\r\n[/url]";
    $out .= "Connection: Close\r\n\r\n";

    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>
Подскажите, как уйти от этого. И извиняюсь, если вопрос ламерский :)
 

Popoff

popoff.donetsk.ua
Мне нужно посчитать, сколько будет 12334*32034. Обыскал весь форум, ничего не нашел подобного. Видимо, до меня еще никто не спрашивал...

На твой вопрос будет проще ответить, если ты его конкретизируешь. Например, "Не могу умножить друг на друга два числа. Каким оператором производится умножение?"
 

OracleH2

Новичок
Ладно, я так и думал. если бы могу удалить пост, то сделал бы.
 

SelenIT

IT-лунатик :)
OracleH2

Попытаюсь помочь конкретизировать: видимо, твоя задача - разделить ответ сервера на заголовки и тело. Так?
 

OracleH2

Новичок
Да, причем я не мастер php, а в основном на С писал раньше, поэтому в header() и подобных функциях у меня большие пробелы.

Мне нужно чтобы при обращении к скрипту можно было получить реально количество бубликов, ведь я когда писал этот скрипт проверял просто через браузер :) а оно вон как получается :) если через fsockopen - то :) Поэтому и спрашиваю. читал описания функции header() ничего внятно объясняющего нет.

Флейм (для админа). А может можно сделать раздел "Начинающим", чтобы задавать такие вопросы туда, и чтобы не ругали потом за глупые вопросы в умных разделах?
 

SelenIT

IT-лунатик :)
Функции PHP, как header, так и сабжевая, тут ни при чем. Если бы ты посылал такие же HTTP-заголовки из программы на C, ответ сервера был бы таким же. И тело ответа точно так же отделялось бы от заголовков двумя переводами строки.

...ведь я когда писал этот скрипт проверял просто через браузер...
PHP FAQ: Самые основы. ОЧЕНЬ ВАЖНОЕ ЗАМЕЧАНИЕ.
 

OracleH2

Новичок
Чтобы окончательно не позориться (потому как пробовал разбить ответ браузера и ничего не получилось) может отошлете хотя бы 2 строчки, хоть зацепку какую как сделать на [email protected] . Был бы очень благодарен.
 

chisto_tolyan

Враг народа
Чтобы совсем просто, используй http://php.net/curl + hhtp://php.net/curl_setopt
А вообще, заголовкок ответа сервера от контента разделяюся двумя переводами строки, т.е
заголовок
\r\n
\r\n
контент
 
Сверху