我无法理解为什么我被告知文件不存在,当它存在时。
我的wordpress主题中有一个函数,如下所示:
function variable($value) {
$country_code = '';
require_once("geoip.inc");
$gi = geoip_open(dirname(FILE)."GeoIP.dat",GEOIP_STANDARD);
$country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
我一直在尝试使用geoip_open的不同变体来获取代码来查看文件,但我在前端收到了这个:
(!)警告:fopen(.geoip.dat):无法打开流:第314行的c:\ wamp \ www \ clairvoyant \ wp-content \ themes \ clairvoyant \ geoip.inc中没有此类文件或目录
它给出的那条道路是完全正确的。
我也尝试取出dirname(FILE)并且只有文件名,但它显示的是同样的错误。
我确实在这里阅读了另一篇关于它的帖子,解决方案是因为它需要一个绝对路径,但我怎么能在本地机器上做到这一点,它会在它生效的时候工作? (目前处于WAMP环境中)
更新: 这是我的全部功能:
function variable($value) {
$country_code = '';
require_once("geoip.inc");
$gi = geoip_open(dirname(__FILE__)."/GeoIP.dat",GEOIP_STANDARD);
$country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
switch ($value) {
case 'prem_no':
if ($country_code == 'US') { $prem_no = '888-888-8888'; }
elseif ($country_code == 'AU') { $prem_no = '1900 000 000'; }
elseif ($country_code == 'GB') { $prem_no = '0906 636 4355'; }
else { $prem_no = ''; }
return $prem_no;
break;
case 'prem_rate':
if ($country_code == 'US') { $prem_rate = '$3.50'; }
elseif ($country_code == 'AUS') { $prem_rate = '$3.96'; }
else { $prem_rate = '£1.53'; }
return $prem_rate;
break;
case 'local_no':
if ($country_code == 'US') { $local_no = '755-555-5555'; }
elseif ($country_code == 'AUS') { $local_no = '1800 000 000'; }
else { $local_no = '0207 111 6311'; }
return $local_no;
break;
case 'sms_no':
if($country_code == 'AUS') { $sms_no = '1977 1977'; }
else { $sms_no = '78887'; }
return $sms_no;
break;
case 'sms_rate':
if($country_code == 'AUS') { $sms_rate = '25c'; }
else { $sms_rate = '£1.50'; }
return $sms_rate;
break;
case 'helpline':
if($country_code == 'US') { $helpline = '700-777-7777'; }
elseif ($country_code == 'AUS') { $helpline = '1700 000 000'; }
else { $helpline = '0207 111 6210'; }
return $helpline;
break;
default:
break;
}
}
第一个案例包括GB作为测试(因为我意识到它对我来说是正确的,因为所有事情都经历了'其他')。插入GB后,我再次获得空白(以及echo $ country_code显示空白)。
答案 0 :(得分:1)
dirname(FILE)."GeoIP.dat"
必须为dirname(__FILE__)."/GeoIP.dat"