我有这样的字符串:
name="n e" content="12" icon="favicon.ico"
将其解析为此类数组的最佳和最快方法是什么:
Array
(
[name] => "n e"
[content] => "12"
[icon] => "favicon.ico"
)
这应该这样做,preg_match_all()
用于获取所有组并array_combine()
形成最终数组:
if (preg_match_all('/(\w+)="([^"]*)"/', $str, $matches)) {
return array_combine($matches[1], $matches[2]);
} else {
return array();
}
编辑
当双引号之间有空格时,此替代方案会中断;否则它也可以:
parse_str(str_replace(array(' ', '"'), array('&', ''), $s), $a);
return $a;