PHP, читать XML-файл, отправленный через cURL
У меня есть этот код, куда я отправляю данные в 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]
или просто зацикливаться на этом.
1 ответ
Итак, код, который вы разместили выше, на самом деле не отправляет файл XML. Все, что он делает, это помещает содержимое этого XML-файла в $_POST
переменная прикреплена к запросу.
Чтобы получить данные (с другой стороны), все, что вам нужно сделать, это посмотреть на $_POST
переменная и ваши данные XML должны быть там. Вы настроите скрипт, и данные будут опубликованы на нем (возможно, с использованием того же метода, который вы использовали выше), и контент будет доступен для вас.