0

さて、PHPでテキストファイルを一覧表示しようとしていますが、任意の数の1つの変数$words_to_match ='spaghetti'を含めて、リンクをエコーする必要があります。ご覧のとおり、テキストファイルは文字列でいっぱいです(またはそれぞれ1つの文字列です)。

これが私のコードです:

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)。私は2番目のものが正しいとかなり確信しています。の数行を含むファイルを検索するspaghettiと、同じファイルがいくつか表示されます。の3行がある場合spaghetti、3つのファイルがあります-など。そのファイルに山がたくさんある場合でも、そのファイルの1つをリストしたいだけですspaghetti。私の理論では、ファイルを1行ずつ読み取り、その中にあるすべての行の出力を提供spaghettiします。

要約すると、ファイルとしてリストされた文字列を含む行数ではなく、リストされたファイルが1つになるようにします。

何か案は?

ところで、私はPHP5.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 に答える