3

このコードを使用して、XMLファイルのデータをcURL経由でプレスオフィスに送信します。今、私の注文が確認または完了したという報道機関からのフィードバックが欲しいです。それも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]

または単にそれをループします。

4

1 に答える 1

2

さて、上記で投稿したコードは実際にはXMLファイルを送信しません。そのXMLファイルのコンテンツを$_POSTリクエストに添付された変数に配置するだけです。

(反対側で)データを受信するには、変数を調べるだけ$_POSTで、XMLデータがそこにあるはずです。スクリプトを設定すると、データがスクリプトに投稿され(おそらく、上記で使用しているのと同じ方法を使用して)、コンテンツにアクセスできるようになります。

于 2012-08-20T07:30:57.333 に答える