如何解决PHP:在特定词组/单词之后搜索文本文件并输出
|| 我正在尝试制作一个小的php脚本来自动化一些工作流程。 脚本要做的就是读取一个文件(每个文件大约10-20kb)。 然后,我需要在文件中搜索一些特定的短语,然后输出-如果出现短语-行号和短语。 例如,我有一个正在阅读和搜索的文本文件。我搜索短语“花是黄色”,“马是白色”和“混合”; 然后我的输出是: 第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,然后每次出现该短语时,它都会将其放入数组(或字典)中,其中行号为键,短语为值,但无法使其起作用,我认为可能会有更好,更有效的方法。
我们非常乐意为您提供任何帮助或建议。
谢谢
-梅斯蒂卡
解决方法
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 );
, 创建一个将grep输入的脚本并将结果通过管道传递到PHP脚本。
, 将此:
在文本文件中查找字符串,然后在该行中添加一些内容
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。