3

いくつかの作業プロセスを自動化する小さな php スクリプトを作成しようとしています。スクリプトが行う必要があるのは、ファイル (ファイルあたり約 10 ~ 20kb) の読み取りです。次に、ファイルを検索して特定のフレーズを検索し、フレーズが見つかった場合は行番号とフレーズを出力する必要があります。

たとえば、私が読んで検索しているテキストファイルがあります。「花は黄色」、「馬は白」、「混合」というフレーズを検索します。</p>

次に、私の出力は次のとおりです。

4行目:「馬は白」 19行目:「混合;」22 行目: 「混合;」99行目:「花は黄色です」…など。

各行と行番号を正しく出力するこのコードを使用していますが、検索されたフレーズのみを出力する検索ルーチンを作成することはできません。

<?php
$lines = file('my-text-file.txt');

foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
?>  

私はstrposを使用することでしたが、フレーズの出現を見つけるたびに、行番号をキーとして、フレーズを値として配列(または辞書)に入れましたが、機能させることができませんでした。より効果的で効果的な方法があるのではないかと考えました。

私が行くべき方向への助けや提案は、非常に高く評価されます。

ありがとう
- メスティカ

4

3 に答える 3

2
function search ( $what = array (), $filePath ) {
    $lines = file ( $filePath );

    foreach ( $lines as $num => $line ) {
        foreach ( $what as $needle ) {
            $pos = strripos ( $line, $needle );
            if ( $pos !== false ) {
                echo "Line #<b>{$num}</b> : " . htmlspecialchars($line) . "<br />\n";
            }
        }
    }
}

#   Usage:
$what = array ( 'The horse is white', 'The flower is yellow', 'mixed' );
search ( $what );
于 2011-06-14T04:16:44.853 に答える
1

入力を grep し、結果を PHP スクリプトにパイプするスクリプトを作成します。

于 2011-06-13T23:04:34.193 に答える
0

ビデオ: テキスト ファイル内の文字列を検索し、その行に何かを追加します。

于 2011-06-13T23:05:25.700 に答える