[英]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"** 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"
不能加载$ab
SMITH"
SMITH被截断后的一切。 我将变量$xmlmain
的EMAIL发送给自己,然后看到所有内容都被截断了。 由于未读取XML,这也导致以下失败。
$template_XMLMAIN = $xmlmain->attributes()->template; //This should be tttt_09999_TEST
为什么我看不到XML? 谢谢。
PS:这是将XML发送给我的方式,无法将其从客户端更改为我。
“”实体是首先需要用“”编码的实体。
需要在创建XML流的地方进行编码,以便字符串类似于:
<name firstName="**SMITH&quot;** SON" lastName="" middleInitial="" />
...
或者:
$ab = preg_replac('/&/', '&', $ab);
$xmlmain = simplexml_load_string($ab);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.