php货币转换器,用于工作正常
function get_currency($from_Currency, $to_Currency, $amount) {
$amount = urlencode($amount);
$from_Currency = urlencode($from_Currency);
$to_Currency = urlencode($to_Currency);
$url = "http://www.google.com/finance/converter?a=$amount&from=$from_Currency&to=$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('bld>', $rawdata);
$data = explode($to_Currency, $data[1]); // line 21
return round($data[0], 2);
}
现在我收到此错误
注意:未定义的偏移:1英寸 /storage/ssd1/708/2065708/public_html/function.php 在线 21
答案 0 :(得分:0)
此行会将$rawdata
的内容展开为数组。
$data = explode('bld>', $rawdata);
但如果$rawdata
不包含'bld>',则整个字符串将返回$data[0]
,并且不会有$data[1]
。因此错误Undefined offset: 1
。
您可以检查$rawdata
是否实际包含'bld>'与
if (substr_count($rawdata,'bld>')==0) {
//do something else
return;
}
//your current code
但这取决于您对get_currency($from_Currency, $to_Currency, $amount)
的期望。如果您应始终获取货币throw an error,但如果您想在其他位置查看结果,则只能返回return;
或return NULL;
检查链接它确实包含bld>
,但它可能会显示某些标准不同的内容。因此,检查函数失败时输入的内容,并在浏览器中打开url
并检查源。您会注意到<span class=bld>***</span>
丢失了。当您使用from
和to
发送相同的货币时会发生这种情况。