我正在使用一种 Web 服务,该服务将 HTTP POST 提交到 PHP 页面,如下所示:

表单/帖子参数: 无

标题: 内容类型:文本/xml

body :

<?xml version="1.0"?> 
 <mogreet> 
  <event>message-in</event> 
  <type>command_sms</type> 
   <campaign_id>12345</campaign_id> 
   <shortcode>123456</shortcode> 
  <msisdn>15552345678</msisdn> 
  <carrier><![CDATA[T-Mobile]]></carrier> 
  <carrier_id>2</carrier_id> 
  <message><![CDATA[xxxx testing]]></message> 
 </mogreet> 

我需要能够将每个 XML 元素转换为 PHP 变量,以便更新数据库。我以前从未处理过带有 XML 数据的传入 POST,也不确定从哪里开始 - 我熟悉处理传入的 GET/POST 请求,但不熟悉原始 xml。

请您参考如下方法:

我认为您需要使用 $HTTP_RAW_POST_DATA .之后,您可以按照@ChristianGolihardt 的建议使用SimpleXMLElement

请注意,只有在 php.ini 中启用了 always_populate_raw_post_data 设置后,HTTP_RAW_POST_DATA 才可用。否则,这样做可能最简单:

$postData = file_get_contents("php://input"); 
... 
$xml = new SimpleXMLElement($postData); 
... 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!