我正在接收通过POST发送的XML.当然,我需要解析这个XML来获取它对我来说的好处.但是,当我收到XML时,似乎PHP正在将其解析为查询字符串.
例如,这个xml:
<?xml version="1.0" encoding="utf-8"?>
<ForgotPassword>
<version>1.0</version>
<authentication>
<login>myresllerid</login>
<apikey>1234567890abcdef</apikey>
</authentication>
<parameters>
<emailAddress>joesmith@example.com</emailAddress>
</parameters>
</ForgotPassword>
Run Code Online (Sandbox Code Playgroud)
成为这个(来自print_r($_REQUEST)):
Array
(
[
<?xml_version] => "1.0" encoding="utf-8"?>
<IDCForgotPassword>
<version>1.0</version>
<authentication>
<login>myresllerid</login>
<apikey>1234567890abcdef</apikey>
</authentication>
<parameters>
<emailAddress>joesmith@example.com</emailAddress>
</parameters>
</IDCForgotPassword>
)
Run Code Online (Sandbox Code Playgroud)
您可以看到XML在XML中的第一个等号(=)被分解为键/值对.
我该如何避免这种情况?
除非enctype是multipart/form-data,否则使用php:// input来获取原始输入.
$c = file_get_contents('php://input');
Run Code Online (Sandbox Code Playgroud)