我正在尝试根据用户的IP地址显示国家/地区标志。以前,我工作得很好,但我觉得我不小心做错了。经过几个小时的调试,我似乎无法找到导致错误的原因。它不会抛出任何错误,但它根本不显示任何标志或任何“echo”语句。有人有建议吗?代码在下面,提前感谢。
function iptocountry($ip) {
$numbers = preg_split( "/\./", $ip);
include("ip_files/".$numbers[0].".php");
$code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]);
foreach($ranges as $key => $value){
if($key<=$code){
if($ranges[$key][0]>=$code){$two_letter_country_code=$ranges[$key][1];break;}
}
}
if ($two_letter_country_code==""){$two_letter_country_code="unknown";}
return $two_letter_country_code;
$IPaddress=$_SERVER['REMOTE_ADDR'];
$two_letter_country_code=iptocountry($IPaddress);
include("ip_files/countries.php");
$three_letter_country_code=$countries[ $two_letter_country_code][0];
$country_name=$countries[$two_letter_country_code][1];
echo "Two letters code: $two_letter_country_code<br>";
echo "Three letters code: $three_letter_country_code<br>";
echo "Country name: $country_name<br>";
// To display flag
$file_to_check="flags/$two_letter_country_code.gif";
if (file_exists($file_to_check)){
echo `"<img src=$file_to_check width=30 height=15><br>"`;
}else{
echo `"<img src=flags/noflag.gif width=30 height=15><br>"`;
}
}
?>
答案 0 :(得分:3)
在函数返回语句后,你错过了一个右括号}
。
此外,您的代码非常紧张和狭窄。你有没有考虑过更宽敞的编码风格?它确实对眼睛有帮助,它可能会帮助你更快地发现这样的错误。