【问题标题】:PHP search field - Search String through files [closed]PHP搜索字段 - 通过文件搜索字符串[关闭]
【发布时间】:2014-06-13 19:58:15
【问题描述】:

我正在尝试在目录(上传)中搜索与搜索表单匹配的文件名。

我在网站的搜索栏中输入了“巴赫”一词。然后,我希望我的脚本搜索目录中的所有文件并显示所有包含单词“bach”的文件。

这是我想出的代码,我希望它能够工作。我看不到任何视觉错误,想知道您是否可以帮助我。

目前,我没有从搜索中得到任何结果。

if(isset($searchvalue))
{
    $dir = opendir('upload/'); 
    while ($read = readdir($dir)) 
    {
        if ($read!='.' && $read!='..') 
        { 
            if (stristr($searchvalue,$read))  //case insensitive
            {
                echo '<p><a href="upload/'.$read.'">'.$read.'</a></p>'; 
            }
        }
     }
     closedir($dir);  
}

【问题讨论】:

  • 你没有提到它有什么问题。错误?什么是你不想发生的事情?
  • 抱歉,我已经编辑了我的问题。基本上,它与结果不匹配。意思是,当它尝试搜索文件时没有结果。
  • 还有glob function提供模式匹配。

标签: php search search-engine


【解决方案1】:

您不应在 stristr 调用中引用参数。

试试这个:

if (stristr($searchvalue,$read))

【讨论】:

  • 试过去掉引号,可惜还是不行。
【解决方案2】:
if (isset($searchvalue)) {
    $dir = opendir('upload/');
    while ($read = readdir($dir)) {
        if ($read != '.' && $read != '..') {
            if (stristr($read, $searchvalue)) //case insensitive
            {
                echo '<p><a href="upload/' . $read . '">' . $read . '</a></p>';
            }
        }
    }
    closedir($dir);
}

修复:删除引号并将stristr()中的参数翻转。您正在搜索输入中搜索文件名。但是您必须在文件名中搜索搜索输入。否则,您检查“something.txt”是否在“something”中当您输入“something”时=>评估为FALSE

【讨论】:

  • 太棒了!!!这就是解决方案。非常感谢!
猜你喜欢
  • 2018-08-08
  • 2021-12-23
  • 2018-10-08
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多