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

Joh*_*nde 3 php xml post http

我正在接收通过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中的第一个等号(=)被分解为键/值对.

我该如何避免这种情况?

Vol*_*erK 5

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

$c = file_get_contents('php://input');
Run Code Online (Sandbox Code Playgroud)