从特定行读取文本文件

时间:2014-07-22 20:52:46

标签: php

如何从特定行读取特定行?

### users

user name : albert
user name : asqkut
user name : ahddrt
user name : khert

### info

line 1 
line 2
line 3
....



### banned

192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4

我想知道如何阅读### info并停止###禁止获取日期之间

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

如果您的文字文件中没有多个\n\n,请执行以下操作:

### users
user name : albert
user name : asqkut
user name : ahddrt
user name : khert
### info
line 1 
line 2
line 3
....
### banned
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4

你可以在这样的数组中获取数据

$lines = file_get_contents("file.txt");
$start = strpos($lines, "### info");
$end = strpos($lines, "### banned");
$result = explode("\r\n",substr($lines, $start+10,$end-$start-11));
var_dump($result);

您获得的结果是

 array (size=4)
  0 => string 'line 1' (length=6)
  1 => string 'line 2' (length=6)
  2 => string 'line 3' (length=6)
  3 => string '....
' (length=5)

答案 1 :(得分:1)

我建议调查SplFileObj,它允许你直接寻找线,假设你知道你想要的线,否则你可以轻松地迭代它们。

http://php.net/manual/en/class.splfileobject.php