2011-08-26 90 views
0
$dm_post = 'DATA=' . urlencode('<?xml version="1.0" encoding="ISO-8859-1"?><REPORTE><NROCTA>1098670</NROCTA><DETALLE><CONSULTA><CLAVE>123456</CLAVE><TIPO>1</TIPO><OPERACIONES><ID>123456789</ID></OPERACIONES></CONSULTA></DETALLE></REPORTE>');  

$curl_handle = curl_init(); 
curl_setopt($curl_handle, CURLOPT_URL, $dm_url); 
curl_setopt($curl_handle, CURLOPT_POST, 1); 
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $dm_post); 
$buffer = curl_exec($curl_handle); 
curl_close($curl_handle); 

$info = simplexml_load_string($buffer, 'SimpleXMLElement', LIBXML_NOCDATA); 

print_r($info); 

警告:simplexml_load_string():實體:行1:分析器錯誤:開始標記預期, '<' 在/var/www/domain.com/public_html/curl_test.php沒有發現第15行
警告:simplexml_load_string():1位於第15行的/var/www/domain.com/public_html/curl_test.php
警告:simplexml_load_string():^在/var/www/domain.com/public_html/curl_test中。 php on line 15警告使用curl

有什麼想法嗎?我不知道爲什麼我得到錯誤

+0

'SimpleXML'不是驗證xml的最佳選擇。試試'DOMDocument' http://pt.php.net/manual/en/class.domdocument.php – yoda

回答

1

看起來你需要設置捲曲選項CURLOPT_RETURNTRANSFER爲true。

curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);

http://php.net/curl_setopt

默認行爲是curl_exec()直接輸出數據。通過打開該選項,它將以字符串的形式返回數據,這似乎是您所期望的。