0

好的,所以我试图在 PHP 中列出文本文件,我需要它们包含任意数量的一个变量$words_to_match ='spaghetti'并回显链接。如您所见,文本文件充满了字符串(或者每个都是一个字符串)。

这是我的代码:

if($_POST["Confirmed"]=='') 
{
    echo "You need to enter something to search!";
}
else
{
    $path_to_check = 'Confirmed/';
    $words_to_match = $_POST["Confirmed"];//Checks the form from the last page 

    foreach(glob($path_to_check.'*.txt') as $filename)
        {
            foreach(file($filename) as $fli=>$fl) // Not sure what to put here.
                {
                    if (stristr($fl,$words_to_match) !== false) //Or here.
                    {
                        echo '<a href="'.$filename.'">'.$filename.'</a><br />';
                        }
                    }
                }
            }

我不知道在说foreach(file($filename) as $fli=>$fl)Or的地方放什么if (stristr($fl,$words_to_match) !== false)。我很确定第二个是对的。当我搜索包含多行的文件时spaghetti,它会显示几个相同的文件。如果有 3 行spaghetti,则有 3 个文件 - 等等。我只想列出其中一个文件,即使该文件中有一大堆spaghetti。我的理论是它逐行读取文件,并给出其中所有行的输出spaghetti

回顾一下,我想这样做,所以我有一个列出的文件,而不是多少行包含一个列为文件的字符串。

有任何想法吗?

顺便说一句,我使用 PHP 5.3 的标准 GoDaddy 托管帐户。

4

1 回答 1

0

为什么不只是:

foreach(glob(...) as $filename) {
    if( stripos(file_get_contents($filename),$words_to_check) !== false) {
        // word is present.
    }
}
于 2013-02-13T23:42:02.577 回答