如果从外部文件中找到文本,则查找特定行

时间:2017-02-26 14:58:52

标签: php

我有一个包含此内容的文件:

Line A
Line B
Line C
Line D
Line E

如果我正在寻找Line C,我怎样才能将包含Line C的行的结果作为row 2?我使用file_get_contents()语法如下:

$get_file=file_get_contents("text.txt");
substr_count($get_file, "Line C");

但结果为1

2 个答案:

答案 0 :(得分:0)

我测试了这样,它返回' 2'

1 <?php
2 $str = "Line A\nLine B\nLine C\nLine D\nLine E\n";
3 $arr = explode("\n", $str);
4 $key = array_search("Line C", $arr);
5 if ($key !== false)
6 {
7     echo $key;
8 }
9 ?>

答案 1 :(得分:0)

您可以使用strstr在搜索字符串之前获取内容。使用substr_count,您可以找到该事件。

$search = 'Line C';

$content = file_get_contents('example.txt');

$preceedingContents = strstr($content, $search, true);

if ($preceedingContents !== false) {
    $line = substr_count($preceedingContents, PHP_EOL);
    echo "$search found in row : $line";
} else {
    echo "$search not found";
}

example.txt包含的位置:

Line A
Line B
Line C
Line D
Line E

<强>给出:

对于,$search = 'Line C';给出Line C found in row : 2
对于,$search = 'Line A';给出Line C found in row : 0
对于,$search = 'Line R';给出了Line R not found