1 回答
TA贡献1875条经验 获得超3个赞
例子:
<?php
$desiredWord = 'apple';
$fileString = file_get_contents('asd.txt');
$lines = explode(PHP_EOL, $fileString);
$results = [];
foreach ($lines as $lineNumber => $line) {
if (strpos($line, $desiredWord) !== false) {
$results[] = ($lineNumber + 1) .":{$line}";
}
}
foreach ($results as $result) {
echo '<pre>' . print_r($result, true) . '</pre>';
}
输入文件内容:
apple
asdfsdf
vs
werwerwer
llll
hhheeheh
there is an apple on the tree
the tree does not fall far from it's apple
输出:
1:apple
7:there is an apple on the tree
8:the tree does not fall far from it's apple
您可以使用 foreach 遍历这些行。该$lineNumber键包含您当前正在阅读的行索引,并且$line是当前行的字符串。explode 函数将从 0 开始索引您的数组,因此当您读取它时第一行索引将为 0。这就是这一行中的 + 1 的原因:$results[] = ($lineNumber + 1) .":{$line}";
您if (strpos($line, $desiredWord) !== false)正在检查是否在给定行中找到所需的单词。如果你只想要一个结果,你可以在这里返回,但如果你想收集所有可以找到这个词的行,那么你可以像这样将找到的行存储在$results
最后,您可以使用第二个 foreach 或任何其他方式检查结果 - 取决于您的实施。
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
