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

标签 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 中的第一个等号 (=) 处被分解为键/值对。

如何避免这种情况?

最佳答案

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

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

关于php - 如何处理通过 POST 发送的 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2803147/

相关文章:

javascript - 使用 ajax 刷新页面而不重新加载,并在该页面中使用 POST/GET

php - PHP一键提交多个表单

php - Laravel,使用jquery ajax返回响应400错误

android - 如何在android中为 GridView 设置一行?

java - JAXB 是否支持默认模式值?

java - 如何使用自定义 SOAPHandler 正确格式化 SOAP 消息信封

rest - ionic 浏览器应用程序中的CORS header 问题

与非推送 Assets 相比,推送 Assets 的 HTTP2 延迟

javascript - PHP、CMS 和 Google 广告营销

php - 不使用 CURL 发送 GET 请求