Получение разрешений каталога через FTP - PullRequest
1 голос
/ 13 мая 2010

Я пытаюсь получить права доступа к каталогу через команду FTP «STAT» следующим образом:

$directory_list = ftp_raw($conn_id,'STAT '.$path);

Приведенная выше команда перечисляет все содержимое каталога, включая файлы и подкаталоги. Затем я ищу в возвращенном массиве данных каталог, который мне нужно проверить, и получаю что-то вроде:

drwxr-xr-x   3 user  group     77824 May 13 10:15 Targetdir

Это позволит мне разобрать строку drwxr-xr-x и выяснить, что chmod у Targetdir - 0755.

Проблема в том, что каталог содержит 5000 файлов. A) Это занимает очень много времени, и B) функция ftp_raw просто возвращает пустой массив 1 из 10 запусков. Я не знаю, истекло ли это время или в чем проблема.

Есть ли лучший способ найти разрешения для каталога? Есть ли способ ограничить количество найденных полей в команде "STAT"? Мне действительно нужны только топ-5, нет необходимости в других файлах 4995.

Кто-нибудь знает, почему моя команда НЕ выполняется 100% времени? Почему это сломалось? Я даже не могу воспроизвести свою ошибку, это происходит случайно.

1 Ответ

1 голос
/ 13 мая 2010

См. Пример ftp_exec в руководстве. Таким способом вы можете создать список файлов, затем загрузить его и проанализировать.

ftp_exec($conn_id, 'ls -al >files.txt');

или, если вы знаете имя каталога, и он является единственным:

ftp_exec($conn_id, 'ls -ld '.$DIRECTORY.' >permissions.txt');

Если у вас нет разрешения exec, попробуйте:

ftp_nlist ($conn, "-ld ".$DIRECTORY);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...