使用 PHP 搜索目录中的文件内容以创建指向匹配文件的链接

问题描述 投票:0回答:0

我在 synology NAS 上创建了一个公司内部网页,其中包含一系列公司内部文档(操作方法、流程等)的链接。 它有多个页面,使用一个简短的 PHP 脚本来创建按部门组织的服务器上文件夹中文件的链接列表。

<?php
    $dir = "./files_to_serve/Fabrication/How_To"; //Directory to be iterated for links
    if (is_dir($dir)){//make sure its a directory
        if ($dh = opendir($dir)){// Open a directory, read its contents
            while (($file = readdir($dh)) !== false){
               if ($file != "." and $file != "..") { // skip links "." and ".."
                   $encoded_file = rawurlencode($file);// replace spaces in filenames with %20, etc
                   echo "<a href=$dir/$encoded_file target=\"_blank\">$file</a><br><br>"; //create download links to files
               }
            }  
            closedir($dh);
        }
    }
?> <!-- End PHP -->

我正在尝试创建一个可以搜索所有文件夹的搜索功能。因此,在该脚本列出“./files_to_serve/Fabrication/How_To”中的所有文件的地方,这将搜索“./files_to_serve”中的文件以通过 html 表单输入字符串,并返回一个 html 页面,列出指向具有匹配项的文件的链接,大概是根据相关性排序的。

我开始用 PHP 创建这个脚本,但随着我的进行,我想到了越来越多的问题,比如 ./files_to_serve 中的文件可以是任何类型。例如,.xlsx。我最初使用 grep 的计划不会在 .xlsx 上工作。

我也觉得我可能是在重新发明轮子。是否有一些功能或技术已经可以完成我正在尝试做的事情?我的 google-fu 没有发现任何东西,但我对这一切都很陌生,可能问的问题很糟糕。

基本上,我想在包含与字符串匹配的目录中递归地创建指向所有文件的链接列表。

任何人都可以推荐一种现有的方法来做到这一点吗?或者建议一种搜索各种文件类型内容的好方法,以便我可以尝试自己实现它?

谢谢!抱歉,如果很明显,这是我尝试过的第一个真正复杂的网站。

编辑-如评论中所述,我的问题与建议的答案不同,因为我试图(递归地)搜索目录中的文件而不是 SQL 数据库。

php html search
© www.soinside.com 2019 - 2024. All rights reserved.