将数据发布到外部服务器后PHP读取XML响应
我不熟悉php和XML。另外,我在这里已经讨论了很多关于这个话题的话题 可能有点小故障,但我看不懂 下面是我按照其中一条线索阅读的步骤。 我没有得到任何使用上述代码 下面是使用CURL的实际[精确]XML响应将数据发布到外部服务器后PHP读取XML响应,php,xml,curl,xml-parsing,Php,Xml,Curl,Xml Parsing,我不熟悉php和XML。另外,我在这里已经讨论了很多关于这个话题的话题 可能有点小故障,但我看不懂 下面是我按照其中一条线索阅读的步骤。 我没有得到任何使用上述代码 下面是使用CURL的实际[精确]XML响应 提前感谢,我们将非常感谢您提供的任何帮助……正确地说,您没有试图从正确的位置获取提供给您的信息。您需要的信息存储在根节点中,以下是一个快速示例,演示如何获取这些信息:- <?php function parse_response($response) { $xml = ne
提前感谢,我们将非常感谢您提供的任何帮助……正确地说,您没有试图从正确的位置获取提供给您的信息。您需要的信息存储在根节点中,以下是一个快速示例,演示如何获取这些信息:-
<?php
function parse_response($response) {
$xml = new SimpleXMLElement($response);
$arr = array();
foreach($xml->attributes() as $key => $value) {
$arr[(string)$key] = (string)$value;
}
return $arr;
}
var_dump(parse_response($str));
/*
array(10) {
["orderID"]=>
string(15) "120130414021640"
["PAYID"]=>
string(20) "BESALDOM 516A65F5E5E"
["STATUS"]=>
string(1) "4"
["NCSTATUS"]=>
string(1) "0"
["NCERROR"]=>
string(0) ""
["NCERRORPLUS"]=>
string(51) "Your transaction has been submitted for processing."
["ACCEPTANCE"]=>
string(5) "BINF-"
["IPCTY"]=>
string(0) ""
["CCCTY"]=>
string(0) ""
["IDUsager"]=>
string(8) "7884TSMA"
}
*/
attributes()作为$key=>$value){
$arr[(字符串)$key]=(字符串)$value;
}
返回$arr;
}
变量转储(解析响应($str));
/*
阵列(10){
[“订单ID”]=>
串(15)“120130414021640”
[“PAYID”]=>
串(20)“BESALDOM 516A65F5E5E”
[“状态”]=>
字符串(1)“4”
[“NCSTATUS”]=>
字符串(1)“0”
[“NCERROR”]=>
字符串(0)”
[“NCERRORPLUS”]=>
字符串(51)“您的交易已提交处理。”
[“接受”]=>
字符串(5)“BINF-”
[“IPCTY”]=>
字符串(0)”
[“CCCTY”]=>
字符串(0)”
[“IDUsager”]=>
串(8)“7884TSMA”
}
*/
简单加载xml文件
<?php
$xml = @simplexml_load_string($result);
$status = (string)$xml->Status;
$operator_trans_id = (string)$xml->OPID;
$trns_id = (string)$xml->TID;
状态;
$operator\u trans\u id=(字符串)$xml->OPID;
$trns_id=(字符串)$xml->TID;
返回xml是一个节点,您试图使用$returnxml->channel
循环它-您在响应频道中看到了什么?@aditi:我不知道您在说什么。我只想阅读这个特定的xml。请仔细检查您称之为精确curl响应的部分的格式。让自己对编辑工具更熟悉一点,在当前的形式下,你的问题是什么,它是否是XML或什么都不清楚。它确实有效,请更加努力。您是否以字符串形式获取响应并将其传递到parse_response
函数中?我将传递CURL以$result返回的响应。我没有添加任何转换函数。接下来,我尝试按原样使用您的函数,它甚至不像您的示例那样转储任何内容。最后,它成功了。响应甚至不是xml。我像读字符串一样读,结果出来了。感谢您的帮助使用Curl函数返回的响应
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $this->omnipayment_action_url);
curl_setopt($ch,CURLOPT_POST, count($myorder));
curl_setopt($ch,CURLOPT_POSTFIELDS, $flds);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
curl_close($ch);
<?php
function parse_response($response) {
$xml = new SimpleXMLElement($response);
$arr = array();
foreach($xml->attributes() as $key => $value) {
$arr[(string)$key] = (string)$value;
}
return $arr;
}
var_dump(parse_response($str));
/*
array(10) {
["orderID"]=>
string(15) "120130414021640"
["PAYID"]=>
string(20) "BESALDOM 516A65F5E5E"
["STATUS"]=>
string(1) "4"
["NCSTATUS"]=>
string(1) "0"
["NCERROR"]=>
string(0) ""
["NCERRORPLUS"]=>
string(51) "Your transaction has been submitted for processing."
["ACCEPTANCE"]=>
string(5) "BINF-"
["IPCTY"]=>
string(0) ""
["CCCTY"]=>
string(0) ""
["IDUsager"]=>
string(8) "7884TSMA"
}
*/
<?php
$xml = @simplexml_load_string($result);
$status = (string)$xml->Status;
$operator_trans_id = (string)$xml->OPID;
$trns_id = (string)$xml->TID;