如果该城市位于德克萨斯州,则我将使用php和地理付费服务在网页内容中显示城市。为什么我的if .... else语句不起作用?
通过ipstack提供的付费SSL地理位置服务。 使用cpanel托管GoDaddy
<html>
<h1>
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$api_key = "myipstackkeygoeshere";
$freegeoipjson = file_get_contents("http://api.ipstack.com/".$ip."?access_key=".$api_key."");
$jsondata = json_decode($freegeoipjson);
$cityfromip = $jsondata->city;
$region_namefromip = $jsondata->region_name;
if ($region_namefromip = "Texas") {
echo "". $cityfromip ."";
} else {
echo "Texas";
}
?>
Services</h1>
</body>
</html>
如果访问者的位置在德克萨斯州,我希望在“服务”之前显示城市(例如:“达拉斯服务”)。如果访客的位置不在德克萨斯州,我希望显示“ Texas”(例如:“ Texas Services”)。
在添加if ... else语句并仅使用echo "". $cityfromip ."";
之前,该页面将显示城市(无论哪个州)。使用if ... else语句时,不会显示任何城市。我的代码哪里出问题了?
答案 0 :(得分:-1)
杰克的答案很有帮助,我可以使用以下方法提出可行的解决方案:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$api_key = "AccessKeyGoesHere";
$freegeoipjson = file_get_contents("https://api.ipstack.com/".$ip."?access_key=".$api_key."");
$data = json_decode($freegeoipjson, TRUE);
$city = print_r($data['city'], true);
$state = print_r($data['region_code'], true);
$charlotte_cities_in_75_mile_radius = "City1 City2 City3 City4 City5 City6 City7 City8";
if ((strpos($charlotte_cities_in_75_mile_radius,$city) !== false) AND ($state == "NC")) {
echo $city ." ";
}
else {
echo 'North Carolina ';
}
?>