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

3

我将收到通过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在第一个等号(=)处被分成了键值对。

我应该如何避免这种情况?


请问能否让我们看一下您的POST表单? - Brant
1个回答

5

如果enctype不是multipart/form-data,请使用php://input获取原始输入。

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

如果在PHP中是multipart/form-data(RFC 2388),你该怎么做? - hakre
hakra:这将由http://docs.php.net/manual/zh/features.file-upload.post-method.php中描述的机制处理。 - VolkerK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接