【问题标题】:PHP , read XML file sent via cURLPHP ,读取通过 cURL 发送的 XML 文件
【发布时间】:2012-08-15 13:11:13
【问题描述】:

我有这段代码,我通过 cURL 将 XML 文件中的数据发送到新闻办公室。现在我想从媒体那里得到我的订单已确认或完成的反馈。我也想把它放在一个 XML 文件中。我知道如何通过 curl 发送文件,现在我想知道如何接收它们以便读出数据。欢迎提出任何建议。

这就是我发送 XML 的方式:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $incomm_prod_server);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_POSTFIELDS, str_replace('{voucher_code}', $voucher_code, $xml_data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));

所以这就是我在获取 XML 方面所做的:

  $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    $result_xml = simplexml_load_string(curl_exec($ch));

但是我得到 bool(false) 作为结果,所以没有发送 xml?

编辑:我可以像这样访问数据:

  if ( $_SERVER['REQUEST_METHOD'] === 'POST' ){
        $postText = file_get_contents('php://input');
    }
    die(var_dump($postText));

我上次编辑了一个,也许它会帮助其他人,我现在这样访问我的 xml:

            if ( $_SERVER['REQUEST_METHOD'] === 'POST' ){
            $postText = file_get_contents('php://input');
        }
        $xml = new SimpleXMLElement($postText);
        $packing_number = $xml->xpath('/feedback/packing_number');
        $packing_status = $xml->xpath('/feedback/packing_status');

这会给你一个数组,你可以像这样访问它:

$packing_number[0]

或者只是循环通过它。

【问题讨论】:

    标签: php xml url curl readxml


    【解决方案1】:

    好的,所以您在上面发布的代码真的不会发送 XML 文件。它所做的只是将该 XML 文件的内容放入附加到请求的 $_POST 变量中。

    要接收数据(在另一边),您所要做的就是查看$_POST 变量,您的 XML 数据应该在那里。您将设置一个脚本并将数据发布到其中(可能使用您在上面使用的相同方法),并且您可以访问内容。

    【讨论】:

    • 嗯好的,我做更多的研究,我会试试看,谢谢
    • 我尝试在另一边执行此操作:$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); $result_xml = simplexml_load_string(curl_exec($ch)); curl_close($ch); die(var_dump($result_xml)); 但我得到 bool(false) 回来。不知道如何访问那里的 xml。
    • 你为什么不用这些信息更新你的帖子......在 cmets 中阅读这里有点困难......
    • 我可以再问一件事。我现在可以访问 xml,但只能访问值。我想要完整的 xml 文件。像 val 不仅是 val.
    • 它们仍然存在 - 问题是您的浏览器认为这些标签是 HTML 标签。如果您将内容回显到<pre><code> 标记中,那么您将看到所有数据...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 2020-08-14
    • 2011-03-01
    • 2012-03-04
    • 2010-09-19
    • 1970-01-01
    相关资源
    最近更新 更多