【问题标题】:how to search for a file with php如何使用php搜索文件
【发布时间】:2017-11-03 01:54:55
【问题描述】:

第一件事就是第一。我不是 php 开发人员,这是我的工作所需要的,所以我接受了它,我正在学习中

现在我们有一个 Excel 表,其中包含我们制作的项目手册的链接,这些必须手动更新。可能需要几个小时才能完成。所以我试图找到一种方法来减少时间。

我可以使用 javascript 读取 excel 文件以获取我需要的信息,然后通过 ajax 调用将其发送到 php。

我已经确保我得到了我需要的数据,并让它看看他们在服务器上的表现。

我整天都在谷歌上搜索,试图让它工作,但我总是空虚。

这是我在 php 文件中的代码。

    <?php
$search = isset($_POST['urlData']) ? rawurldecode($_POST['urlData']) : "Nope Still not set";
$path = $_SERVER['DOCUMENT_ROOT'];


$it = new RecursiveDirectoryIterator( $path );
foreach (new RecursiveIteratorIterator($it) as $file){
    $pathfile = str_replace($path,'',$file);
    if (strpos($pathfile, $search) !== false) {
        echo " pathFile var => ". $pathfile . "| Search var => " . $search;
        $encodedUrl = rawurlencode($pathfile .$search);
        echo 'link = http://manuals.myCompany.com/'. $doneUrl .'<br>';

    }else{

        echo "File does not exist => ";
        echo $path. "<= Path " . $search."<= Search ". $pathfile . "<= Pathfile";

    }
    break;
}

所以我需要给php文件一个手册的名字,看看它是否在某个目录中。

此文件是存储在手册文件夹 (manuals/searchManuals.php) 中的 searchManuals.php。我查找的文件与它位于同一目录中的文件夹中 (manuals/english/jdv0/pdf/manual.pdf)。

【问题讨论】:

  • 您的帖子很混乱...您是否正在寻找使用 php 在任何特定目录中搜​​索文件的功能?
  • 对不起。我需要输入一个手动名称,并在服务器上保存它们的众多文件之一中找到它。我只知道名字。并需要返回该文件的链接
  • 为什么不使用这个神奇的库呢? symfony.com/doc/current/components/finder.html第一个例子实际上是递归搜索目录
  • 对不起,这很令人困惑,我重述了一遍
  • 好的,我剪掉一堆这样更好吗?

标签: php file search file-search


【解决方案1】:

试试这个:

$file_to_search = "abc.pdf";

search_file('.',$file_to_search);




function search_file($dir,$file_to_search){

$files = scandir($dir);

foreach($files as $key => $value){

    $path = realpath($dir.DIRECTORY_SEPARATOR.$value);

    if(!is_dir($path)) {

        if($file_to_search == $value){
            echo "file found<br>";
            echo $path;
            break;
        }

    } else if($value != "." && $value != "..") {

        search_file($path, $file_to_search);

    }  
 } 
}

【讨论】:

  • 我现在正在测试它。但我正在用 wamp 在我的本地测试。我只是通过 ftp 复制了文件以保持相同。它没有找到我要找的东西,但它们是我确定在那里的文件
  • 好的,我按照您设置的方式进行了尝试,我还在 scandir 函数中添加了 DIR 以查看这是否可行,但似乎两者都没有影响。
  • 同名的不得超过一个。它们的名称末尾都附有日期,因此可能是手册03-04-2017
  • 这适用于小规模测试。我花了几个小时试图弄清楚这一点,而你在几分钟内就做到了。非常感谢
【解决方案2】:

glob() 函数怎么样? PHP Docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-04
    • 2011-02-03
    • 1970-01-01
    • 2012-12-04
    • 2014-12-20
    • 2011-04-16
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多