Вниз
Скачать: CL | DM;

Сокеты, 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
3-1204540600
хочу все знать
2008-03-03 13:36
2008.08.31
Подсчет символов в поле записи


2-1216794383
Mishenka
2008-07-23 10:26
2008.08.31
Как отловить событие, когда в ListView изменяют ширину столбца?


15-1215681548
DRG
2008-07-10 13:19
2008.08.31
Книга по С++ для знающего Delphi


11-1192972730
Dodfr
2007-10-21 17:18
2008.08.31
Cant update correctly KOLAdd from 2.81 to 2.82


15-1215717772
Пробегал2....
2008-07-10 23:22
2008.08.31
Куда двигаться после delphi?




   Наверх