我正在通过第三方提供的API将支付网关集成到我的网站中,我确实成功了。当它处理付款并在所谓的success.php
页面中返回成功结果时,我从他们的simplexml_load_string($result)
收到已经输出的xml,该xml像这样打印在success.php
页面中。
SimpleXMLElement Object
(
[error_code] => 00
[token] => 1182263526325de72aw828369e7aa
[description] => SimpleXMLElement Object
(
)
[transaction_status] => 00
[receiver_email] => myemail@gmail.com
[order_code] => 3212423
[total_amount] => 200
[payment_method] => SimpleXMLElement Object
(
)
[bank_code] => NLAZ
[payment_type] => 1
[order_description] => SimpleXMLElement Object
(
)
[tax_amount] => 0
[discount_amount] => 0
[fee_shipping] => 0
[return_url] => success.php
[cancel_url] => order.php
[buyer_fullname] => eric phuong
[buyer_email] => eric@domain.com
[buyer_mobile] => 012108609
[buyer_address] => abc
[affiliate_code] => SimpleXMLElement Object
(
)
[transaction_id] => 12345
)
我想做的是:
将上面的输出结果放入一个变量中,以便我可以获取值。如何在 php 和 .php 中做到这一点?我应该这样说还是怎么说?
<?php> 00 .... .XML; ?>
尝试获取所有值,例如
012108609, eric@domain.com, etc
buyer_mobile, buyer_email, etc
。
你能帮忙吗?
谢谢
埃里克
P/S:我也尝试https://stackoverflow.com/questions/25522047/php-xml-to-array-object-with-attributes-and-values
阅读此条目并应用它,但没有成功。
注意:我已经知道如何解析 xml 文件以获取数组值,但在这种情况下的过程完全不同,它已经在success.php
页面中输出和回显。我试图获得这些值,但这似乎超出了我的知识范围。 如果您的问题不够清楚,我可以根据要求进行更新。
你可以从返回simplexml_load_string($result)
中获得 SimpleXMLElement
然后,您可以访问这些属性并将它们强制转换为字符串,因为 SimpleXMLElement 具有__toString方法。
$variable = simplexml_load_string($result);
$buyerMobile = (string)$variable->buyer_mobile;
$buyerEmail = (string)$variable->buyer_email;
如果要从该响应中获取值,则可以使用具有交替的正则表达式,并使用K
重置报告匹配项的起点:
[buyer_(?:email|mobile|fullname|address)] =>s*K.*
演示