【发布时间】:2014-09-18 04:52:15
【问题描述】:
我正在尝试进行一些地理定位以在我的 WordPress 网站的标题中显示某些电话号码。不幸的是,当我应用下面的代码时,我得到了以下 PHP 错误:
[2014 年 9 月 17 日 19:48:16 UTC] PHP 警告:strpos() [function.strpos]:/home/domain/public_html/wp-content/themes/Avada/framework/headers/ 中的空针第 87 行的 header-v4.php
[2014 年 9 月 17 日 19:48:16 UTC] PHP 警告:strpos() [function.strpos]:/home/domain/public_html/wp-content/themes/Avada/framework/headers/ 中的空针第 90 行的 header-v4.php
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$url = "http://freegeoip.net/json/" . $ip;
$json = file_get_contents($url);
$data = json_decode($json, TRUE);
$city = print_r($data['city'], true);
$state = print_r($data['region_code'], true);
$kings_orlando = "Altamonte Springs Apopka Casselberry College Park Heathrow Lake Mary Longwood Maitland Orlando Oviedo Windermere Winter Park Winter Springs";
if ((strpos($kings_orlando,$city) !== false) AND ($state == "FL")) {
echo '<a href="tel:1-407-270-2112">1-407-270-2112</a>';
}
else {
echo '<a href="tel:1-954-753-9436">1-954-753-9436</a>';
}
?>
我不仅会收到错误消息,而且我的页脚也会消失。谁能告诉我我做错了什么?
提前致谢
【问题讨论】:
-
向我们展示
header-v4.php文件,第 85 到 92 行。 -
if 语句之前的
$city的值是多少?您是否正在验证 freegeoip.net 是否正在传回合法数据?很多时候,如果这些服务无法找到某些信息,它会返回一个空字符串作为占位符,从而导致上述错误消息没有经过适当的检查。尝试echo $city;或print_r($data);查看返回的数据概览。$city可能是一个空字符串... -
你有一根空针,把它修好。除了错误消息中的内容之外,还有什么要说的?
-
@SverriM.Olsen,第 85 - 92 行已经在提供的代码中。它是 if 语句一直到提供的代码的结尾。
-
@War10ck 谢谢,我会试试的。