如何处理通过POST发送的XML?

时间:2010-05-10 13:59:41

标签: php xml http post

我正在接收通过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>

成为这个(来自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>
)

您可以看到XML正在将XML中的第一个等号(=)分解为键/值对。

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:5)

除非enctype是 multipart / form-data ,否则使用php://input来获取原始输入。

$c = file_get_contents('php://input');