使用php -查找服务器上文件的路径


Find path to file on server using php -

我想知道如何获得我使用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类遍历感兴趣的目录树时调用它。