функция exec не работает - PullRequest
       9

функция exec не работает

0 голосов
/ 25 февраля 2010

Я нашел этот код из http://kevin.vanzonneveld.net/techblog/article/convert_anything_to_tree_structures_in_php/,, но не смог заставить его работать. Я работаю в среде WIndow и использую путь / sellable, где sellable - это папка внутри рабочей папки:

if(exec("find /etc/php5", $files)){
    // the $files array now holds the path as it's values,
    // but we also want the paths as keys:
    $key_files = array_combine(array_values($files), array_values($files));

    // show the array
    print_r($key_files);
}

Кто-нибудь может мне помочь?

Ответы [ 3 ]

2 голосов
/ 25 февраля 2010

Вы вряд ли получите команду find или каталог /etc/php5 на машине с Windows. Используйте встроенный в PHP glob или DirectoryIterator RecursiveDirectoryIterator (спасибо Паскаль :) Glob не может перебирать подпапки изначально, но есть простые реализации globr в комментариях пользователя на связанной странице. Итератор может сделать это изначально.

1 голос
/ 25 февраля 2010

find - это команда Linux (внешняя программа Linux).
Что означает, что он не будет присутствовать в Windows ...

И /etc/php5 действительно выглядит как UNIX-путь к каталогу; и не похож на путь к каталогу Windows.

Итак, две проблемы здесь:

  • Вы должны найти эквивалент ... find.
    • Может быть, использовать что-то вроде Cygwin?
  • Вы должны адаптировать путь, чтобы он подходил вашей системе


Но я бы сказал, что решение только для PHP, вероятно, будет лучше : есть функции и классы, которые позволят вам искать файлы и выполнять итерации по файловой системе - и это будет работать как в Linux, так и в Windows , не зависит от какой-либо внешней программы.

Например, для итерации по каталогу вы можете взглянуть на класс RecursiveDirectoryIterator - и, возможно, также DirectoryIterator.

0 голосов
/ 25 февраля 2010

Я не пробовал, но «dir / s / b c: \ somedir» может работать как быстрая замена «найти» в Windows. Лучшим (и более переносимым) решением будет использование RecursiveDirectoryIterator или функций opendir / readdir в php для рекурсивного вывода списка всех файлов в каталоге.

см. Пример кода здесь, например: http://php.net/manual/en/function.readdir.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...