У меня есть этот код, где я отправляю данные в 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'));
Так вот что я делаю на стороне ither, чтобы получить 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?
EDIT: я могу получить доступ к следующим данным:
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]
или просто проведите через него.
Хорошо, поэтому код, который вы выложили выше, действительно не отправляет XML-файл. Все, что он делает, помещает содержимое этого XML-файла в переменную $_POST
прикрепленную к запросу.
Для получения данных (с другой стороны) все, что вам нужно сделать, – это посмотреть в переменную $_POST
и ваши XML-данные должны быть там. Вы настроили скрипт, и данные будут отправлены на него (возможно, используя тот же метод, который вы используете выше), и контент будет доступен вам.