用php读取txt文件

时间:2016-08-02 21:17:19

标签: php preg-match

我正在努力解析ip,它位于我知道的特定单词的上方2行,是否可以有人知道如何做到这一点? 这是我的代码的一部分...

if (($handle = fopen('FW1-20160802_1530.conf', "r")) !== FALSE){
while (($data = fgetcsv($handle, 1000,";")) !== FALSE) 
..
else if (preg_match('/(.*site-5552)/',$data[0],$match))
            {
                list(,$line)=$match;
                $REV_ARRAY[$site_name]['line']=$line;           
            }

这给了我以下输出的第三行:

edit 2
        set dst 10.23.255.252 255.255.255.252
        set device "abc"
        set comment "Static Route site-5552"

但正如我上面提到的,我需要抓住ip:“10.23.255.252”,它存在两条线。

文本文件太大,所以我只粘贴了一部分。 根据站点编号(在本例中为5552)我需要找到相关的ip(10.93.255.252)

edit "Site-5552"
    set asdaa
    set asdsdaa
    set aadsda
    set aasdda
    set aaaa
    set adsaa
    set aadsa
    set vvxv
    set dsds
    set czx

ssasd

edit 2
        set dst 10.93.255.252 255.255.255.252
        set device "sdasdsad"
        set comment "Static Route for LTE site-5552"

1 个答案:

答案 0 :(得分:1)

K.D您需要s修饰符来告诉正则表达式引擎在与.

匹配时包含换行符

更改您的正则表达式模式:

/(.*site-5552)/

要:

/set dst ([\d\.]+).*site-5552/s

Live demo