日期:2014-05-17  浏览次数:20468 次

PHP如何解析这种格式的文件
XML code

<accounts>
user=15@220 bindlan=none auto_bindmac=yes cn=包 
user=16@613 auto_bindmac=yes bindlan=none cn=包 
user=15@116 bindlan=none cn=- desc=- maxlogin=1


再不用explode的情况下,把上面的格式解析成数组,如 $a[accounts][user]='15@220'这种格式

explode是下下策,众多PHP函数,有一个能解析此类格式文件吗?类似于parse_ini_file这种函数

------解决方案--------------------
PHP code
$s = <<< TXT
<accounts>
user=15@220 bindlan=none auto_bindmac=yes cn=包 
user=16@613 auto_bindmac=yes bindlan=none cn=包 
user=15@116 bindlan=none cn=- desc=- maxlogin=1
TXT;

$s = str_replace(' ', "\n", $s);
$s = str_replace('<', "[", $s);
$s = str_replace('>', "]", $s);

$p = parse_ini_string($s, 1);
print_r($p);

------解决方案--------------------
PHP code
$s = <<< TXT
<accounts>
user=15@220 bindlan=none auto_bindmac=yes cn=包 
user=16@613 auto_bindmac=yes bindlan=none cn=包 
user=15@116 bindlan=none cn=- desc=- maxlogin=1
TXT;

preg_match_all("/[\S]+=[^\s]*/",$s,$c);
print_r($c);

------解决方案--------------------
楼上2种方法都可以


郑州PHP.Net
http://www.zzphp.net/
------解决方案--------------------
parse_ini_string 第一次看到呢.