所以我正在为某人设置DPS,我的xml_parse中有一点错误。我正在使用DPS的示例代码(http://www.paymentexpress.com/Technical_Resources/Sample_code_-_PHP/PX_Post_-_cURL.aspx),我已将其修改为与PxPay一起使用。我的问题是它正在吐出一个错误,我不知道代码在做什么,所以不确定出了什么问题
这是我的代码
function parse_xml($data){
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);
$params = array();
$level = array();
foreach ($vals as $xml_elem) {
if ($xml_elem['type'] == 'open') {
if (array_key_exists('attributes',$xml_elem)) {
list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
} else {
$level[$xml_elem['level']] = $xml_elem['tag'];
}
}
if ($xml_elem['type'] == 'complete') {
$start_level = 1;
$php_stmt = '$params';
while($start_level < $xml_elem['level']) {
$php_stmt .= '[$level['.$start_level.']]';
$start_level++;
}
$php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
eval($php_stmt);
}
}
}
我在这一行收到“未定义的偏移:1”错误
list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
据我所知,它向我吐出的东西就像下面的
<Request valid="1">
<URI>https://sec.paymentexpress.com/pxpay/pxpay.aspx?userid=Samplepxpayuser&request=v5x4Ygc8SJlc3FLYva7pIp6QHqKiSatHN8sNMufz-NNrOGJXn0TJf5TOIVNwQRyNqPo9cPMUfXWJkxjAGGDGDzhkwFD6VxRD2KesUBcmD5ViwVnb4va16zLih9VmKlipvEelGaYsF3fCqudnaWV1abz6f8VNKJOhGeypImjWk9I9xV0-iZh860FPcOam_UVHe81aQ4C2LJKB_znLiWqALSeeOHskI9vxdPOfcsfO7xXOuSMVXsKK6kVX4eZjcODKS1JGKP97fhb4gI2vpR7KUwIGC7U9VkXkPQfAGyYuP1g8x0QR1kC6eNzov3-W48OyvQ1_Fabn8cc1deTrsk6s3bPj3dgrlcXUfnFvmSOemB4rs-ixPDwQcaEsZWQvUcIsaPXAWfQdgtC0dETayY_wVFN8yVmljpCZweiGyNhUHhYGIWLEGuP_Le1HwyHXc_fMaQOeqdZNrFBviCJyWZ2HKferSEwkyQqMmq</URI>
</Request>
有没有人有DPS的经验或知道这里可能出现的问题?
我收到了结果但是我的错误报告中仍然存在这个错误
修改
不再需要这个。此代码现已过时
答案 0 :(得分:0)
将eval($php_stmt);
替换为if (isset($xml_elem['value'])) { eval($php_stmt); }