我从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);
}
任何人都可以帮助我吗?
答案 0 :(得分:2)
您很难在Windows机器上获得find
命令或/etc/php5
目录。使用PHP的内置glob或 DirectoryIterator RecursiveDirectoryIterator(感谢Pascal :)代替。 Glob无法本机迭代子文件夹,但链接页面上的User Contributed Notes中有简单的globr
实现。迭代器可以原生地执行此操作。
答案 1 :(得分:1)
find
是Linux命令(外部Linux程序)。
这意味着它不会出现在Windows上......
/etc/php5
看起来像是目录的UNIX路径;并且看起来不像是Windows目录的路径。
所以,这里有两个问题:
find
的等价物。
但是我会说一个只有PHP的解决方案可能会更好:有一些函数和类可以让你搜索文件并迭代文件系统 - 它可以在Linux和Windows,不依赖于任何外部程序。
例如,要遍历目录,您可能需要查看RecursiveDirectoryIterator
类 - 也可能DirectoryIterator
。
答案 2 :(得分:0)
我还没有尝试过,但“dir / s / b c:\ somedir”可以作为Windows上“查找”的快速替代品。更好(更便携)的解决方案是使用RecursiveDirectoryIterator或php的opendir / readdir函数递归列出目录中的所有文件。
在此处查看示例代码,例如: http://php.net/manual/en/function.readdir.php