1

タブ、改行、および空白を使用した複数の行を含むファイルがあります。PHP では、特定のキーワードの配列を検索するファイルをループしようとしています。

配列は次のとおりです。 array('test', 'test2', 'test3')

ファイルの内容:

@test
    @test3


       @test2


コード:

$file = file_get_contents('file.txt');
foreach ($array as $k) {
    preg_match('/(@'.$k.')$/m', $file, $m);
}
print_r($m);

$array問題は、その前の空白に関係なく、 (test3)の最後の要素と正常に一致することです。どんな助けでも感謝します、ありがとう。

4

3 に答える 3

1

コードの問題はprint_r($m)、ループの外側にあります。明らかに、最後の一致のみを印刷します。

于 2013-05-25T09:01:52.587 に答える
0
$file = file_get_contents('file.txt');
$array = array('test', 'test2', 'test3');
$words = implode('|', $array);

if(preg_match_all('/@('.$words.')\s/i', $file, $m))
{
    print_r($m);
}

これは、必要なものすべてと一致するはずです。ただし、ファイルの最後のキーワードの後に​​改行またはスペースを追加すると修正できる小さな問題があります。

于 2013-05-25T08:47:28.987 に答える