2010-09-08 4 views
0

Я ищу способ получить список каталогов для файлов, находящихся за пределами дерева веб-сервера, например, я хочу перечислить все файлы и папки в каталоге «/ home» и поместить их в массив (точно так же, как и скандир).scandir вне web tree using PHP5

Я могу «Sudo су», чтобы пользователь, который имеет права проверять содержание каталога, но я не знаю, как преобразовать список каталогов, которые я мог бы получить от

exec ('ls -la /home'); 

Или, может быть, с скрипт bash?

+0

Вы действительно хотите использовать scandir() или glob() для поиска файлов за пределами дерева веб-сервера (которые они уже делают) или для доступа к файлам, которые, как правило, не имеют права доступа к скрипту PHP ... . scandir ('/ home') будет работать отлично, если у вас есть разрешение на доступ к нему –

+0

нет разрешения на него. – Disco

ответ

1

Сложный. Команда «su» не берет пароль из stdin из соображений безопасности, и это делает невозможным использование его с PHP.

Вам нужно найти альтернативу.

Будет ли список огромным? Должно ли это быть в реальном времени?

Возможно, вы можете отредактировать crontab этого другого пользователя, который имеет разрешения на список файлов? Если да, то вы можете выполнить команду, которая выводит список файлов в некоторый текстовый файл, который затем вы сможете прочитать с PHP. Cron может работать один раз в минуту, но если ваш каталог не меняется очень часто, это будет работать.

+0

нашел другой способ; php-cli возвращает base64. благодаря – Disco

Смежные вопросы