是否可以使用php脚本在C:/(windows)上找到文件?如果是,是否有任何示例代码/解决方法手册。
编辑:网络服务器与C:/目录在同一台PC上。
谢谢
答案 0 :(得分:3)
如果您正在寻找递归搜索,您可能会对spl RecursiveDirectoryIterator感兴趣。
<?php
$path = 'C:/';
$file = 'issetup.exe';
$rdi = new RecursiveDirectoryIterator($path);
$rit = new RecursiveIteratorIterator($rdi);
foreach( $rit as $path=>$info ) {
if ( $file===$info->getFilename() ) {
echo $path, "\n";
break;
}
}
答案 1 :(得分:2)
只要您只想查看一个目录,然后是,使用PHP函数对其进行编码会更快。但是如果你想通过树递归搜索一个特定的文件名,那么它可能要快得多:
$cmd="dir $fname /s"
chdir("C:/");
$found=explode("\n",`$cmd`);
但我相信现在NT已经在操作系统中内置了文件索引 - 因此必须在某处显示钩子才能进行更快速的搜索。
下进行。
答案 2 :(得分:1)
我为此目的使用scandir,就像这样:
$path = $_SERVER['DOCUMENT_ROOT'];
$files = scandir($path);
echo '<pre>';
if (count($files) > 2) {
// first 2 entries are '.' and '..'
$files = array_slice($files, 2);
print_r($files);
}
echo '</pre>';
阅读http://php.net/manual/en/function.scandir.php 有关对结果数组进行绝缘处理的帮助:http://php.net/manual/en/ref.array.php
答案 3 :(得分:0)
如果您正在讨论安装PHP的服务器,只要您访问与Web服务器共享权限的HDD区域,就可以无限制地使用PHP文件命令。 PHP.net上的第一个例子说了......
http://php.net/manual/en/function.file.php
如果您正在谈论用户的计算机,他们可以使用<input id="uploader" name="uploader" type="file">
表单元素选择要上传的文件,但您无法使用任何服务器端语言进行浏览,因为正是如此。
答案 4 :(得分:0)
除非您在谈论服务器上的C:驱动器或Windows机器上运行的PHP的命令行版本,否则PHP 作为服务器端语言,无法访问到你的C:开车。
如果你 引用服务器上的C:驱动器,那么readdir功能(如haim evgi建议的那样)应该适合你。
请记住阅读readdir参考页面上的警告,并记得先打开目录。函数参考提供了示例代码。
答案 5 :(得分:0)
我假设你想从实际的PHP解释器运行(即作为本地脚本),你可以使用SPL(php 5)
仅举两个例子,请参阅here和here。如果您在搜索得足够努力的情况下阅读网络上的PHP manual和其他许多内容,请参阅更多示例。