ローカルでうまく動作するスクリプトを構築しました。私は今、そのスクリプトをプロキシの背後にあるサーバーに移しました。私はいくつかの問題に遭遇しました。ここで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で解析しましたが、これが可能かどうかはわかりませんでしたか?
編集:
は私がでプロキシオプションを追加したようにも失敗したCURLでページをロードし、それを修正しました。今私は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を別々に取り出して調べてみてください。外部に定義されている文字エンティティがそこにあるように聞こえ、その外部定義を読み込むことができます。 –
どうすればいいですか?私はちょうどページをつかむfile_get_contentsを使用してみましたが、私はストリームのエラーを開くに失敗しています。 (エンティティのエラーはなくなった) – tctc91
私の進歩に伴いOPが更新されました – tctc91