PHP搜索字段-通过文件搜索字符串

PHP搜索字段-通过文件搜索字符串,php,search,search-engine,Php,Search,Search Engine,我正在尝试搜索目录(上载)以查找与搜索表单匹配的文件名 我在我的网站的搜索栏中输入单词“Bach”。然后,我希望我的脚本搜索目录中的所有文件,并显示包含单词“bach”的所有文件 这是我提出的代码,我希望它能起作用。我看不到任何视觉错误,不知道您是否可以帮助我 目前,我没有从搜索中得到任何结果 if(isset($searchvalue)) { $dir = opendir('upload/'); while ($read = readdir($dir)) {

我正在尝试搜索目录(上载)以查找与搜索表单匹配的文件名

我在我的网站的搜索栏中输入单词“Bach”。然后,我希望我的脚本搜索目录中的所有文件,并显示包含单词“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);  
}
if(isset($searchvalue))
{
$dir=opendir('upload/');
而($read=readdir($dir))
{
如果($read!='.&&$read!='..'))
{ 
if(stristr($searchvalue,$read))//不区分大小写
{
回声“

”; } } } closedir($dir); }
您不应该在stristr调用中引用参数

试试这个:

if (stristr($searchvalue,$read))
if(isset($searchvalue)){
$dir=opendir('upload/');
而($read=readdir($dir)){
如果($read!='.&&$read!='..')){
if(stristr($read,$searchvalue))//不区分大小写
{
回声“

”; } } } closedir($dir); }

修复方法:删除引号并在
stristr()
中旋转参数。您正在搜索输入中搜索文件名。但是您必须在文件名中搜索搜索输入。否则,当您输入“something”=>时,检查“something.txt”是否在“something”中,计算结果为
FALSE

您没有提到它有什么问题。错误?什么是你不想发生的?对不起,我已经编辑了我的问题。基本上,这与结果不符。也就是说,当它尝试搜索文件时没有结果。还有提供模式匹配的。尝试删除引号,不幸的是仍然无效。太棒了!!!这就是解决办法。非常感谢你!
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);
}