繁体   English   中英

POST值XML包含“ PHP正在截断

[英]POST value XML contains " the PHP is truncating

我有一个开机自检方法

$ab = $_POST['xml'];

xml数据如下:

<email CommunicationType="Email" SourceSystem="GPS" TemplatePageZone="" brand="THORN" channel="THORN" emailAddr="mallu@THORN.com" template="tttt_09999_TEST">
  <communicationTypes>
    <communicationType Name="EMAIL" Value="PETERS@THORN.com" isRequired="Y" />
    <communicationType MobileTemplateID="12345" Name="COMM" OptInUrl="OptInUrl" Value="1234567890" isPartialOrFull="" isRequired="Y" template="88888" />
  </communicationTypes>
  <name firstName="**SMITH&quot;** SON" lastName="" middleInitial="" />
  <order orderDate="05/16/2013" orderHeaderKey="287346JSDV" orderIdATG="THORN01-23423415" orderNoEOMS="THORN01-22324323015" >
    <creditCard card="" numbersss="" />
    <digitalCoupons digitalCouponTotal="0.00" />
    <lineItems />
  </order>
  <account atgProfileId="" cirisID="" info="" password="" />
  <comments />
</email>
$xmlmain = simplexml_load_string($ab);

问题是$ xmlmain由于特殊字符SMITH&quot;不能加载$ab SMITH&quot;

SMITH被截断后的一切。 我将变量$xmlmain的EMAIL发送给自己,然后看到所有内容都被截断了。 由于未读取XML,这也导致以下失败。

$template_XMLMAIN =  $xmlmain->attributes()->template;  //This should be tttt_09999_TEST

为什么我看不到XML? 谢谢。

PS:这是将XML发送给我的方式,无法将其从客户端更改为我。

“”实体是首先需要用“”编码的实体。

需要在创建XML流的地方进行编码,以便字符串类似于:

<name firstName="**SMITH&amp;quot;** SON" lastName="" middleInitial="" />

...

或者:

$ab = preg_replac('/&/', '&amp;', $ab);
$xmlmain = simplexml_load_string($ab);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM