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

Vide this: 在文本文件中查找一个字符串并在该行中添加一些内容

于 2011-06-13T23:05:25.700 回答