Форум: "Прочее";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
ВнизСокеты, php, ftp -- вопрос специалистам Найти похожие ветки
← →
Nous Mellon_ (2008-07-11 15:23) [0]Доброе время суток, друзья. Есть небольшой пхп скрипт, который работает по фтп протоколу. Он коннектится к моему домену и обновляет там всякую инфы. Работает он не через стандартные ftp_ ф-ции php, а напрямую посылает ФТП команды серверу через используя сокеты.
Естественно, фтп сервер возвращает ответы, которые скрипту нужно анализировать. Обычно ответы возвращаются одной строкой и делаю
$response = trim(fgets($this->socks,256));
сюда помещается ответ от сервера. Проблема в том, что ответ иногда бывает в нескольких строках(напр. когда произошла некая ошибка), а программа читает одну и при анализе след. ответа читает не нужную строку, а вторую из пред. ответа и происходит сбой. Тут нужно как-то проверить есть ли в сокете, грубо говоря, еще сообщения. К сожалению, я в этом не очень хорошо разбираюсь, основу модуля писал не я поэтому обращаюсь к вам. Самое банальное, что я понял здесь следует сделать это feof($sock) и цикл, но тут проблема возникает что если больше инфы в сокете нет, условие все равно не срабатывает и прога подвисает. Наверно я туплю, но буду благодарен за любую помощь
← →
Юрий © (2008-07-11 15:28) [1]
<?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)) {
$result .= fgets($fp, 128);
}
fclose($fp);
}
$headers = split("\r\n", substr($result, 0, strpos($result, "\r\n\r\n")));
$content = substr($result, strpos($result, "\r\n\r\n") + 4);
?>
(с) http://ru2.php.net/fsockopen
← →
Nous Mellon_ (2008-07-11 16:51) [2]О, спасибо большое -- буду пробовать, похоже на то что мне нужно, по результату отпишусь
← →
Nous Mellon_ (2008-07-12 12:05) [3]Попробовал, не получается. Т.е. если например в ответе от сервера одна строка, то цикл после первой итерации тупо виснет
← →
Nous Mellon_ (2008-07-12 12:44) [4]Неактуально, проблема решена. Спасибо phpclasses.org
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c