Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.14;
Скачать: CL | DM;

Вниз

php + ftp   Найти похожие ветки 

 
Nous Mellon_   (2007-09-12 00:16) [0]

Доброе время суток. Пишу скрипт на пхп, который работает с фтп. Задача скрипта залогинится по фтп на сервер, и показать все файлы и папки, которые там есть. Вроде мини-клиента. С коннектом, логином и прочим проблем нет, а вот с получением списка файлов и папок(их нужно отдельно) возникли непонятки.

Если для файлов в пхп еще есть ф-ция ftp_nlist, то уж папки приходится выдирать из того что возвращает ftp_rawlist. А оно возвращает массив строк ответа сервера. Например такую
------------
drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp
------------
Когда я тестил эту программу у себя, то все работало, я делил каждую строку на массив слов, и точно знал что в 9м элементе массива будет имя файла\папки. Но когда дал скрипт тестеру выяснилось что там где он тестит фтп-сервер почему-то возвращает результат работы ft-Prawlist в другом виде, там в строке всего лишь дата создания и имя файла\папки. Т.е. скрипт работает неверно. Такое встречается иногда. Как мне сделать свой скрипт универсальным? Гуглил, ничего дельного не нашел.


 
Anatoly Podgoretsky ©   (2007-09-12 00:18) [1]

> Nous Mellon_  (12.09.2007 00:16:00)  [0]

Нельзя сделать универсально, поскольку имеется несколько десятков форматов.


 
Nous Mellon_   (2007-09-12 00:26) [2]

> [1] Anatoly Podgoretsky ©   (12.09.07 00:18)
> > Nous Mellon_  (12.09.2007 00:16:00)  [0]
>
> Нельзя сделать универсально, поскольку имеется несколько
> десятков форматов.

Анатолий, а как же работают фтп-клиенты? мой коннетится исправно


 
Kerk ©   (2007-09-12 00:29) [3]

> [2] Nous Mellon_   (12.09.07 00:26)

 Некоторые FTP сервера генерируют разные листинги в ответ на одну и ту же
 стандартную команду.

 1. Некоторые сервера генерируют листинги, содержащие нестандартные символы
    разделители. В результате плагин ошибается при разборе полученного
    листинга.
    Решить эту проблему можно изменив используемую команду получения листинга
    ("LIST -la" вместо "LIST", или наоборот)

 2. Некоторые сервера не понимают параметры команды "LIST" и генерируют
    листинг, которые не содержит имен файлов вообще, только имена директорий.
    Один известный сервер с таким поведением - это "ftp.timus.ru".
    Чтобы избежать этого используйте команду "LIST" (или отключите
    использование расширенной команды листинга для этого сервера).

 3. Некоторые сервера возвращают неправильные даты и времена файлов или не
    возвращают их вовсе.
    Будьте готовы к тому, что дата файла не соответствует реальной дате файла
    на сервере.


Из ридми FARовского ftp-плагина


 
Nous Mellon_   (2007-09-12 00:32) [4]

Спасибо за инфу, Ром. Фиг знает, что делать...


 
de.   (2007-09-12 08:02) [5]

Question all...
Ну должны же быть готовые скрипты.?!


 
Anatoly Podgoretsky ©   (2007-09-12 10:16) [6]

> Nous Mellon_  (12.09.2007 00:26:02)  [2]

Каком они работают, или на предположение, что это Юникс тайп или на явном указание типа ФТП, более хитрые пытаются сами определить формат с помощью анализа строки на характерные признаки.


 
Юрий ©   (2007-09-12 11:28) [7]

Советую почитать "Профессиональное PHP программирование, 2-е издание. Луис Аргерих, Ванкиу Чой, Джон Коггсхол", глава "Кодирование клиентов FTP". Анализ возвращаемого формата листингов каталогов там есть.


 
Nous Mellon_   (2007-09-12 11:52) [8]

Спасибо за наводку -- попробую найти в Электронном виде


 
VictorT ©   (2007-09-12 13:28) [9]


> приходится выдирать из того что возвращает ftp_rawlist

В примечании к описанию этой функции сказано:

Идентификатор системного типа, возвращаемый функцией ftp_systype(), можно использовать для определения того, как должен интерпретироваться результат.

Это, конечно, ещё не ответ, но зацепка.


 
Anatoly Podgoretsky ©   (2007-09-12 19:13) [10]

> VictorT  (12.09.2007 13:28:09)  [9]

С ftp_systype можно далеко залететь.



Страницы: 1 вся ветка

Текущий архив: 2007.10.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
1-1185839798
Dr. Andrew
2007-07-31 03:56
2007.10.14
Как обрисовать выделенный регион штриховой (пунктирной) линией?


6-1171264410
vasilii_terkin
2007-02-12 10:13
2007.10.14
Проблема с приложением клиент/сервер


15-1189770450
Галинка
2007-09-14 15:47
2007.10.14
dopen что за функция


15-1189612960
ANTPro
2007-09-12 20:02
2007.10.14
Руссификация Windows Vista Ultimate EN


2-1190465938
Виктор007
2007-09-22 16:58
2007.10.14
Помогите перевести из C в Delphi