我想知道如何获得我使用glob()
函数找到的文件的绝对文件路径。我能够使用
foreach (glob("access.php") as $filename) {
echo "$filename absolutepath is: ";
}
不确定哪个函数可以获得所搜索文件的完整路径。试着用谷歌搜索,但找不到任何合理的东西。
感谢小更新:我注意到glob()函数只搜索脚本运行的目录,这对我来说并不好。我需要一个相当于unix find / -name "somename"
有其他选择吗?还是我错过了glob()的东西??
如果还需要查找子目录中的文件,可以使用如下命令:
foreach (glob("{access.php,{*/,*/*/,*/*/*/}access.php}", GLOB_BRACE) as $filename) {
echo "$filename absolutepath is: ".realpath($filename);
}
您可以使用realpath获取文件的绝对路径。更多信息:http://www.php.net/manual/en/function.realpath.php
我认为您需要realpath(),如下所述:http://www.php.net/manual/en/function.realpath.php
foreach (glob("access.php") as $filename) {
echo "$filename absolutepath is: " . realpath($filename);
}
可以通过getcwd函数获得glob函数搜索的目录。
搜索给定路径的任意目录,可以使用以下代码片段:
$dirToList = '/home/username/documents';
$patternToSearch = '*.odt'; // e.g. search for LibreOffice OpenDocument files
$foundFiles = FALSE;
$olddir = getcwd();
if (chdir($dirToList)) {
$foundFiles = glob($patternToSearch);
chdir($olddir); // switch back to the dir the code was running in before
if ($foundFiles) {
foreach ($foundFiles as $filename) {
echo nl2br(htmlentities(
'found file: '.$dirToList.DIRECTORY_SEPARATOR.$filename."'n"
, ENT_COMPAT, 'UTF-8'));
}
}
// else echo 'no found files';
}
// else echo 'chdir error';
最终满足您的愿望,做一个搜索,如
查找/-name " someename "
您可以将该代码片段放入函数中,并在使用PHP的RecursiveDirectoryIterator类遍历感兴趣的目录树时调用它。