我很难理解如何做到这一点。
我想搜索一个单词,然后我希望搜索返回单词以及找到该单词的行上的所有内容。
这个词需要区分大小写,所以搜索TOM不会随着结果返回Tom。
这是我到目前为止所尝试过的。
$contents = file_get_contents($file);
$pattern = preg_quote($word, '/');
$numInt = 0;
$pattern = "/^.*$pattern.*\$/m";
if(preg_match_all($pattern, $contents, $matches))
{
$numInt = count($matches[0]);
}
当我通过我的函数运行它时会返回我想要的结果,但我注意到它在不同的关键字中是不一致的。
在我的测试文本文件中,我有INT (x18)
,我的函数返回18作为计数。但是如果我使用关键字MORNING (x29)
,则函数返回31,这在技术上是正确的,因为有2个实例使用morning
。
答案 0 :(得分:2)
嗯,你可以避免一起使用正则表达式完成这项任务。
这是我掀起的一些代码:
<?php
$contents = file_get_contents($file);
#standardise those line endings
$contents = str_replace(array("\r","\r\n","\n\r","\n"),"\n",$contents);
$lines = explode("\n", $contents);
#find your result
$result = $line_num = array();
foreach($lines as $line_num => $l)
if(strpos($l, $word)) {
$result[] = $l;
$line_nums[] = $line_num;
}
echo "<pre>";
print_r($result);
echo "<br>Count:".count($result);