我们得到了这样的XML输出:
<phone>
<countryCode>+45</countryCode>
<areaCode>354</areaCode>
<subscriberNumber>1631616</subscriberNumber>
</phone>
如何将其转换为以空格分隔的字符串:+45 354 1631616结果为preg_match_all
?
我有一个只能使用preg_match_all
的应用程序(由于某些其他依赖性)。
我尝试了以下操作:
/\<phone\>\s+\<\D+\>(\+\d+)\<\/\D+\>\s+\<\D+\>(\d+)\<\/\D+\>\s+\<\D+\>(\d+)\<\/\D+\>\s+\<\/phone\>/i
这将产生3个结果:
Group 1: +45
Group 2: 354
Group 3: 1631616
因为有3个方括号'()'(我想我们谈论的是反向引用?]。>>
但是我只需要一组结果
Group 1: +45 354 1631616
与空格分隔。
preg_match_all
(不是preg_replace
)可以吗?如果没有空格,也可以。
感谢您的想法。
我们有这样的XML输出:
使用preg_match()
或preg_match_all()
,您无法创建仅包含电话号码的匹配组。我认为,最好的解决方案是您已经写的东西,分为三个不同的小组。但是,如果您已经具有<phone>
块,则可以使用strip_tags()
功能,然后仅获得电话号码(以及标签之间的空格字符,如果有的话)。
您正在询问如何配置特定软件。只是不告诉我们哪一个。这不是(PHP)编程问题。