php查找一个单词在一个文件中的第几行第几列

目录
  1. 获得这个文件有多少行
  2. 有一个很大的日志文件,要读出最后100行
  3. 现在开始标题的程序吧

获得这个文件有多少行

1
2
3
4
$file = "aa.txt "; 
$file_array = file($file);
$file_line_num = count($file_array);
echo $file_line_num;die; //获得这个文件有多少行

有一个很大的日志文件,要读出最后100行

怎么办?

1
2
3
4
5
6
7
8
$commandstr="tail -n 100 aa.txt>online.txt"; //把server.log的最后100行重定向到online.txt中
system($commandstr); //调用系统命令
$file_handle = fopen("online.txt", "r+"); //以只读的方式打开online.txt文件
while (!feof($file_handle)) {
$line = fgets($file_handle);
echo nl2br($line); //输出文件
}
fclose($file_handle); //关闭文件

注意,要把online.txt文件的属性设为777,还有上面程序只对linux系统下有效。

现在开始标题的程序吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$file = './aa.txt';
$file_handle = fopen($file, "r+");
$count = 0;
while (!feof($file_handle)) {
$count++;
$line = fgets($file_handle);
if(preg_match('/heaven/', $line)) {
$strarr = explode(' ', $line);
foreach($strarr as $k => $v) {
$v = trim($v, ' ');
if('heaven' == $v) {
echo $count.','.($k+1)."\n";
}
}
}
}
fclose($file_handle);