【发布时间】:2017-05-31 14:55:30
【问题描述】:
我有以下 curl 响应
<status>success</status><statusmsg>online</statusmsg><vmstat>online</vmstat><hostname>my.server.com</hostname><ipaddress>XXX.XXX.XXX.XXX</ipaddress>
这存储在$data
我试着把它转换成这样的数组
preg_match_all('/<(.*?)>([^<]+)</1>/i', $data, $match);
$result = array();
foreach ($match[1] as $x => $y)
{
$result[$y] = $match[2][$x];
}
但它不起作用
E_WARNING : type 2 -- preg_match_all(): Unknown modifier '1' -- at 第 3 行
$result 数组为空。
【问题讨论】:
-
我对正则表达式一无所知,所以我做了什么,但我不知道是否可以:
/<(.*?)>([^<]+)<\/.*>/i如果有错误请纠正我 -
使用正则表达式解析XML只会带来痛苦。使用像
SimpleXML这样的 XML 解析器。
标签: php arrays regex xml preg-match-all