Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
15-1189893812
Kerk
2007-09-16 02:03
2007.10.14
Котлеты


15-1190004777
naumovmag
2007-09-17 08:52
2007.10.14
Работа с COM портами


2-1190047625
Johnnnn
2007-09-17 20:47
2007.10.14
TidPop3


1-1185960673
monkeyboy
2007-08-01 13:31
2007.10.14
Emuneration для индексов массива в Delphi: перевод на С++


2-1189762248
rtm
2007-09-14 13:30
2007.10.14
Запись строки в БД через Edit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский