使用curl和Google计算器始终返回0

时间:2012-08-07 10:56:10

标签: php curl google-api

我正在尝试使用curl和Google计算器从此网址获取货币转换:http://www.google.com/ig/calculator?hl=en&q=100RUB=?EUR。但以下代码始终返回0:

<?php

function currency($from_Currency, $to_Currency, $amount) {
    $amount = urlencode($amount);
    $from_Currency = urlencode($from_Currency);
    $to_Currency = urlencode($to_Currency);
    //www.google.com/ig/calculator?hl=en&q=1USD=?EUR
    $url = 'http://www.google.com/ig/calculator?hl=en&q=$amount$from_Currency=?$to_Currency';
    $ch = curl_init();
    $timeout = 0;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)');
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $rawdata = curl_exec($ch);
    curl_close($ch);
    $data = explode('"', $rawdata);
    $data = explode(',', $data['3']);
    $var = $data['0'];

    return round($var, 2);                  

}
echo currency("USD", "EUR", 1);
?>

任何人都可以建议这里有什么问题?

谢谢。

1 个答案:

答案 0 :(得分:2)

Using single quotes will mean that variables do not expand。改为使用双引号,或将字符串连接成多个部分。

$url = "http://www.google.com/ig/calculator?hl=en&q=$amount$from_Currency=?$to_Currency";
//or
$url = 'http://www.google.com/ig/calculator?hl=en&q=' . $amount . $from_Currency . '=?' . $to_Currency;