日期:2014-05-17 浏览次数:20436 次
Array ( [0] => Array ( [bri] => bridge0 [if1] => wan [if2] => lan [if3] => vlan [mac] => 00:11:22:1d:2d:3d [ip] => 192.168.100.1 [netmask] => 255.255.255.0 [arp] => arp [state] => stop ) [1] => Array ( [bri] => bridge1 [if1] => wan [mac] => 00:01:2B:4C:6D:9F [ip] => 192.168.1.125 [netmask] => 255.255.255.0 [state] => stop ) )
$s = "bri=bridge0 if1=wan if2=lan if3=vlan mac=00:11:22:1d:2d:3d ip=192.168.100.1 netmask=255.255.255.0 arp=arp state=stop"; parse_str(strtr($s, ' ', '&'), $a); print_r($a);
------解决方案--------------------
不就是找哪个key是if开头的吗.
[User:root Time:17:19:16 Path:/home/liangdong/php]$ php preg.php bridge0: wan lan vlan bridge1: wan [User:root Time:17:19:16 Path:/home/liangdong/php]$ cat preg.php <?php $str = <<<EOF bri=bridge0 if1=wan if2=lan if3=vlan mac=00:11:22:1d:2d:3d ip=192.168.100.1 netmask=255.255.255.0 arp=arp state=stop bri=bridge1 if1=wan mac=00:01:2B:4C:6D:9F ip=192.168.1.125 netmask=255.255.255.0 state=stop EOF; $rows = explode(PHP_EOL, $str); foreach ($rows as $row) { $cols = preg_split('/\s+/', $row); $line = explode('=', $cols[0])[1] . ":"; foreach ($cols as $col) { $fields = explode('=', $col); if (strncmp($fields[0], "if", 2) === 0) { $line .= " " . $fields[1]; } } echo $line . PHP_EOL; } ?>