【问题标题】:PHP - Parse sections between braces from text filePHP - 从文本文件中解析大括号之间的部分
【发布时间】:2014-11-13 00:51:19
【问题描述】:

我的 pfSense 中的 DHCP 租约文件是一个文本文件,我需要使用 PHP 解析其中的一些数据。

举个例子,文件如下所示:

lease 192.168.15.13 {
starts 3 2014/11/12 23:51:05;
ends 4 2014/11/13 00:06:06;
cltt 3 2014/11/12 23:51:05;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 8d:3a:96:91:a0:51;
uid "\001\200\352\226\001\240\341";
client-hostname "iPhone";
}
server-duid "\000\001\000\001\000\000\000H\000\015\271)p\335";

lease 192.168.15.12 {
starts 3 2014/11/12 23:51:53;
ends 4 2014/11/13 00:06:54;
cltt 3 2014/11/12 23:51:53;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 8c:e6:5f:26:6d:fe;
uid "\001\200\346P&]\376";
client-hostname "Mike";
}
lease 192.168.15.15 {
starts 3 2014/11/12 23:40:34;
ends 3 2014/11/12 23:55:35;
tstp 3 2014/11/12 23:55:35;
cltt 3 2014/11/12 23:40:34;
binding state free;
hardware ethernet 84:58:8b:d7:44:10;
uid "\001\204x\213\207D\020";
}

有谁知道如何提取大括号之间的部分,从

开始

租用 192.168.25.xx {

直到

}

??

谢谢!

【问题讨论】:

    标签: php parsing dhcp braces pfsense


    【解决方案1】:

    使用正则表达式:http://php.net/manual/en/function.preg-match.php

    $matches = array();
    preg_match("\{(.*)\}", $string, $matches);
    echo $matches[1];
    

    【讨论】:

    • 谢谢!我是这样做的: $string = preg_replace( "/\r|\n/", "", $dhcpFile ); preg_match_all('/{(.*?)}/', $string, $matches);首先,我删除所有中断,然后应用正则表达式!
    猜你喜欢
    • 2011-06-19
    • 2023-03-18
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 2019-02-26
    相关资源
    最近更新 更多