php实现城市跳转
实现城市跳转的方法
使用IP定位库自动跳转
安装geoip2/geoip2库通过Composer:
composer require geoip2/geoip2
获取用户IP并查询城市:
use GeoIp2\Database\Reader;
$reader = new Reader('/path/to/GeoLite2-City.mmdb');
$record = $reader->city($_SERVER['REMOTE_ADDR']);
$currentCity = $record->city->name;
手动选择城市跳转
创建城市选择表单:
<form action="redirect.php" method="post">
<select name="city">
<option value="beijing">北京</option>
<option value="shanghai">上海</option>
</select>
<input type="submit" value="跳转">
</form>
处理表单提交:
$city = $_POST['city'];
header("Location: /$city/");
exit;
结合Cookie记忆选择
设置城市Cookie:
setcookie('user_city', $city, time()+86400*30, '/');
读取Cookie实现自动跳转:
if(isset($_COOKIE['user_city'])){
header("Location: /{$_COOKIE['user_city']}/");
exit;
}
URL参数直接跳转
通过URL参数控制跳转:

if(isset($_GET['city'])){
$validCities = ['beijing','shanghai'];
if(in_array($_GET['city'], $validCities)){
header("Location: /{$_GET['city']}/");
exit;
}
}
注意事项
- IP定位需要定期更新地理数据库
- 所有跳转操作前必须确保没有输出内容
- 建议对用户输入进行严格过滤
- 重要跳转应记录日志






