1
我已經在本地構建了一個可以正常工作的腳本。我現在已經將該腳本移動到代理服務器後面,並且遇到了一些問題。由代理引起的Simplexml_load_file問題
下面的代碼:
$yahooXML = simplexml_load_file('http://query.yahooapis.com/v1/public/yql?q=select+*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22'.$from.''.$to.'%22)&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys');
print_r($yahooXML);
die();
我得到一個未能打開流和I/O警告:無法使用此加載外部實體錯誤。
我探討了使用cURL加載數據,然後用simplexml解析,但不知道這是可能的嗎?
有什麼想法?
編輯:
我裝,捲曲,所以我說在代理選項,它也失敗了的頁面,並將其固定它。現在我只需要加載這個XML?
function curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_PROXY, 'proxysg.uwe.ac.uk:8080');
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$feed = 'http://query.yahooapis.com/v1/public/yql?q=select+*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22'.$from.''.$to.'%22)&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys';
$data = curl($feed);
echo $data;
die();
嘗試單獨提取xml並檢查它。聽起來更像是有一個外部定義的字符實體,外部定義可以被加載。 – 2012-02-01 15:29:13
我該怎麼做?我只是嘗試使用file_get_contents來抓取頁面,但我得到一個未能打開流錯誤。 (實體錯誤消失) – tctc91 2012-02-01 15:32:04
用我的進度更新了OP – tctc91 2012-02-01 15:39:45