我需要一个新的EURUSD报价来在网站上显示我的产品价格。
我正在尝试使用以下代码阅读雅虎财经的报价:
$eurUsd = 1.3700; // Default value
$yahooUrl = 'http://finance.yahoo.com/d/quotes.csv?f=l1&s=EURUSD=X';
$handle = fopen($yahooUrl, 'r');
if ($handle) {
$result = fgetcsv($handle);
fclose($handle);
$eurUsd = $result[0];
}
此代码在我的测试环境中运行良好,但在我的网站中没有,因为我有“allow_url_fopen = 0”。出于安全原因,我不想改变它。
我正在使用的请求返回一个字符串,如:
1.3715
你知道我怎么能以其他方式读取字符串吗?
您是否知道另一种获取EURUSD报价的方法?
修改
感谢Epik的代码我尝试使用curl,但雅虎没有成功。
最后,我摆脱雅虎,并以Rate Exchange JSON/JSONP APIs
取得成功工作解决方案:
$url = 'http://rate-exchange.appspot.com/currency?from=EUR&to=USD';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$eurUsd = json_decode($result)->{'rate'};
答案 0 :(得分:1)
$ch = curl_init();
$url = 'http://finance.yahoo.com/d/quotes.csv?f=l1&s=EURUSD=X';
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);