搜索整个文档而不是行php

时间:2013-02-13 23:31:12

标签: php string file-listing

好的,所以我试图在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)if (stristr($fl,$words_to_match) !== false)的位置放置什么。我很确定第二个是对的。 当我搜索包含多行spaghetti的文件时,它会显示几个相同的文件。如果有3行spaghetti,则有3个文件 - 等等。我只想列出该文件中的一个,即使该文件中有一堆spaghetti。我的理论是它逐行读取文件,并给出其中包含spaghetti的所有行的输出。

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

有什么想法吗?

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

1 个答案:

答案 0 :(得分:0)

为什么不呢:

foreach(glob(...) as $filename) {
    if( stripos(file_get_contents($filename),$words_to_check) !== false) {
        // word is present.
    }
}