Thursday, March 21, 2019

php - Parse content from a file

I'm trying to parse a file with the following contents and display it in a table. The problem is that I'm only able to get the first lease stanza. I'm not sure how to get the rest of them? Any ideas?




INPUT:



# The format of this file is documented in the dhcpd.leases manual page.
# This lease file was written by isc-dhcp-V3.0.3b1

lease 192.168.98.25 {
starts 5 2012/10/05 21:18:41;
ends 5 2012/10/05 22:48:15;
tstp 5 2012/10/05 22:18:41;
binding state free;

hardware ethernet 78:d6:f0:c1:7f:b5;
uid "\001x\326\360\301\177\265";
}
lease 192.168.10.1 {
starts 5 2012/10/04 12:23:23;
ends 5 2012/10/05 22:48:15;
binding state active;
next binding state free;
hardware ethernet 56:a3:f0:d1:75:b5;
uid "\001x\326\360\301\177\265";

}
....
....


OUTPUT:



 HW Address  |start time  | end time | IP 
78:d6:f0:c1:7f:b5 | 2012/10/05 21:18:41 | 2012/10/05 22:48:15 | 192.168.98.25
56:a3:f0:d1:75:b5 | 2012/10/04 12:23:23 | 2012/10/05 22:48:15 | 192.168.10.1



This is what I've tried so far:



$readfile = file('/etc/dhcp/dhcpd.leases',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$arstring = implode(" ",$readfile);

$regex=array();
preg_match_all("(lease\s*([0-9.]+)\s*{\s*starts\s*.?\s*([0-9/\s:]*).?\s*ends\s*.?\s*([0-9/\s:]*).*ethernet\s*([\w:]*))", $arstring, $regex,PREG_SET_ORDER);



Which gives me:



[0] => Array
(
[0] => lease 192.168.98.25 { starts 5 2012/10/05 21:18:41; ends 5 2012/10/05 22:18:41; tstp 5 2012/10/05 22:18:41; binding state free; hardware ethernet 78:d6:f0:c1:7f:b5; uid "\001x\326\360\301\177\265"; } lease 192.168.98.25 { starts 5 2012/10/05 22:54:15; ends 5 2012/10/05 23:54:15; binding state active; next binding state free; hardware ethernet 78:d6:f0:c1:7f:b5; uid "\001x\326\360\301\177\265"; } lease 192.168.98.25 { starts 5 2012/10/05 22:54:16; ends 5 2012/10/05 23:54:16; binding state active; next binding state free; hardware ethernet 78:d6:f0:c1:7f:b5
[1] => 192.168.98.25
[2] => 2012/10/05 21:18:41
[3] => 2012/10/05 22:18:41

[4] => 78:d6:f0:c1:7f:b5
)

No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...