Php exec函数没有';行不通

Php exec函数没有';行不通,php,exec,Php,Exec,我从中找到了此代码,但无法使其正常工作。我正在Windows环境中工作,我使用的路径是/selleble,其中selleble是工作文件夹中的文件夹: 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

我从中找到了此代码,但无法使其正常工作。我正在Windows环境中工作,我使用的路径是/selleble,其中selleble是工作文件夹中的文件夹:

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);
}

有人能帮我吗?

你很难在windows机器上获得
find
命令,或者
/etc/php5
目录。请改用PHP的内置或DirectoryIterator(谢谢Pascal:)。Glob不能以本机方式迭代子文件夹,但在链接页面上用户提供的注释中有简单的
globr
实现。迭代器可以本机执行此操作。

您很难在windows计算机上获得
find
命令或
/etc/php5
目录。请改用PHP的内置或DirectoryIterator(谢谢Pascal:)。Glob不能以本机方式迭代子文件夹,但在链接页面上用户提供的注释中有简单的
globr
实现。迭代器可以本机执行此操作。

find
是一个Linux命令(一个外部Linux程序)。
这意味着它不会出现在windows上

/etc/php5
看起来就像一个指向目录的UNIX路径;而且看起来不像Windows目录的路径

因此,这里有两个问题:

  • 你必须找到一个相当于<代码>查找。
    • 也许用一些像cygwin的东西
  • 您必须调整路径,使其适合您的系统

但是我要说的是,一个只使用PHP的解决方案可能会更好:有一些函数和类可以让你搜索文件并在文件系统上进行迭代——它可以在Linux和Windows上运行,而不依赖于任何外部程序


例如,要在目录上迭代,您可能需要查看该类,也可能需要查看。

find
是一个Linux命令(一个外部Linux程序)。
这意味着它不会出现在windows上

/etc/php5
看起来就像一个指向目录的UNIX路径;而且看起来不像Windows目录的路径

因此,这里有两个问题:

  • 你必须找到一个相当于<代码>查找。
    • 也许用一些像cygwin的东西
  • 您必须调整路径,使其适合您的系统

但是我要说的是,一个只使用PHP的解决方案可能会更好:有一些函数和类可以让你搜索文件并在文件系统上进行迭代——它可以在Linux和Windows上运行,而不依赖于任何外部程序

例如,要遍历一个目录,您可能需要查看该类,也可能需要查看。

我还没有尝试过,但是“dir/s/b c:\somedir”可以作为windows上“find”的快速替代品。一个更好(且更可移植)的解决方案是使用RecursiveDirectoryIterator或php的opendir/readdir函数递归列出目录中的所有文件

请参见此处的示例代码,例如:

我还没有试过,但是“dir/s/b c:\somedir”可以作为windows上“find”的快速替代品。一个更好(且更可移植)的解决方案是使用RecursiveDirectoryIterator或php的opendir/readdir函数递归列出目录中的所有文件

请参见此处的示例代码,例如:

嗨,Martin,我从php错误日志中得到了这个消息。。[25-Feb-2010 20:23:14]PHP致命错误:未捕获异常“RuntimeException”,消息为“DirectoryIterator::\uuu-construct(\sellable)[]:无法在C:\wamp\www\waterwell\display\u-e-u-book.PHP:21堆栈跟踪:\0 C:\wamp\www\waterwell\display\u-e-book.PHP(21):DirectoryIterator->\uu-construct(“\sellable”)#1 C:\wamp\www\waterwell\e_book.php(40):包含('C:\wamp\www\wat…')#2{main}在C:\wamp\www\waterwell\display_e_book.php的第21行,我必须做些什么才能使用DirectoryIterator吗?顺便说一句,我使用以下代码:$dir=new DirectoryIterator(“/sellable”);foreach($dir as$file){if($file->isDot()){continue;}echo$file->getFilename()。“\n”}@redcoder:就像错误消息说的:“没有这样的文件或目录”;;;这意味着您在实例化DirectoryIterator时可能没有将正确的路径指定为参数;我想
/sellable
不是一个有效的目录;也许您必须指定类似于
C:/Users/../sellable
;或者使用相对路径,如“../sellable”?是的,你说得对。我用错了目录。。应该是可转售的,而不是可销售的。。那密码现在起作用了。。谢谢..嗨,Martin,我从php错误日志中得到了这个。。[25-Feb-2010 20:23:14]PHP致命错误:未捕获异常“RuntimeException”,消息为“DirectoryIterator::\uuu-construct(\sellable)[]:无法在C:\wamp\www\waterwell\display\u-e-u-book.PHP:21堆栈跟踪:\0 C:\wamp\www\waterwell\display\u-e-book.PHP(21):DirectoryIterator->\uu-construct(“\sellable”)#1 C:\wamp\www\waterwell\e_book.php(40):包含('C:\wamp\www\wat…')#2{main}在C:\wamp\www\waterwell\display_e_book.php的第21行,我必须做些什么才能使用DirectoryIterator吗?顺便说一句,我使用以下代码:$dir=new DirectoryIterator(“/sellable”);foreach($dir as$file){if($file->isDot()){continue;}echo$file->getFilename()。“\n”}@redcoder:就像错误消息说的:“没有这样的文件或目录”;;;这意味着您在实例化DirectoryIterator时可能没有将正确的路径指定为参数;我想
/sellable
不是一个有效的目录;也许您必须指定类似于
C:/Users/../sellable
;或者使用相对路径,如“../sellable”?是的,你说得对。我用错了目录。。应该是可转售的,而不是可销售的。。那密码现在起作用了。。谢谢..迭代器似乎可以使用