我用curl擷取xml檔案連結,得到的只有內容,而沒有結構。
比如:
123
red
得到的就是:123 red
請問是需要設定哪裡嗎?
回複討論(解決方案)
貼出代碼看看。
function curlxml($url){ $header[] = "Content-type: text/xml";//定義content-type為xml $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在啟用 CURLOPT_RETURNTRANSFER 時候將擷取資料返回 $r = curl_exec($ch); curl_close($ch); return $r; } $url="https://www.123456.com"; $value=curlxml($url); echo $value;
因為連結都是臨時產生的,所以沒辦法拿上來測試,請幫我看看是不是還要設定哪裡,謝謝!
你只是擷取到了值並沒有對產生的XML進行解析,所以肯定不會得到你要的效果。
在輸出前加個header。
function curlxml($url){ $header[] = "Content-type: text/xml";//定義content-type為xml $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在啟用 CURLOPT_RETURNTRANSFER 時候將擷取資料返回 $r = curl_exec($ch); curl_close($ch); return $r; } $url="https://www.123456.com"; $value=curlxml($url); header('content-type:text/xml;charset=utf-8'); echo $value;
謝謝樓上的,可能我沒表達清楚,我是想讓$r獲得整個XML檔案包括結構,我自己解決了,謝謝了