【问题标题】:Find path to file on server using php -使用 php 在服务器上查找文件的路径 -
【发布时间】:2014-06-27 00:20:51
【问题描述】:

我想知道如何使用glob() 函数获取我找到的文件的绝对文件路径。我可以使用

找到所需的文件
foreach (glob("access.php") as $filename) {
    echo "$filename absolutepath is:  ";
}

不确定哪个函数可以获取所搜索文件的完整路径。试图谷歌,但找不到任何明智的。

谢谢

轻微更新: 我注意到 glob() 函数仅搜索运行脚本的目录 - 这对我不利。我需要一个相当于unixfind / -name "somename"的函数

还有其他选择吗?还是我错过了 glob() 的东西??

【问题讨论】:

    标签: php filepath absolute-path


    【解决方案1】:

    glob 函数搜索的目录可通过 getcwd 函数获得。

    要搜索任何目录,给定它的路径,可以使用以下代码 sn-p:

    $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';
    

    为了最终满足您进行类似搜索的愿望

    find / -name "somename"

    您可以将该代码 sn-p 放在一个函数中,并在使用 PHP 的 RecursiveDirectoryIterator 类遍历感兴趣的目录树时调用它。

    【讨论】:

      【解决方案2】:

      如果您还必须在子目录中查找文件,您可以使用类似以下内容:

      foreach (glob("{access.php,{*/,*/*/,*/*/*/}access.php}", GLOB_BRACE) as $filename) {
          echo "$filename absolutepath is:  ".realpath($filename);
      }
      

      【讨论】:

      • 不幸的是,这仍然没有给我想要的东西。 ?即测试这个我在文件系统的某个地方放置了一个 .txt 文件 - 这个函数没有找到它 - 注意:文件名具有唯一的名称,因此 FS 上没有第二个同名文件
      • 它只在脚本文件目录或子目录中搜索给定的文件。我需要的是一个搜索整个文件系统的函数
      【解决方案3】:

      我认为您需要 realpath(),如下所述:http://www.php.net/manual/en/function.realpath.php

      foreach (glob("access.php") as $filename) {
          echo "$filename absolutepath is:  " . realpath($filename);
      }
      

      【讨论】:

        【解决方案4】:

        您可以使用 realpath 来获取文件的绝对路径。更多信息:http://www.php.net/manual/en/function.realpath.php

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-04
          • 2012-09-17
          • 2013-01-06
          • 1970-01-01
          相关资源
          最近更新 更多