1、app/common.php
2、復制下面代碼,到這個文件;
if (!function_exists('checkCoordinates')) {
/**
* 檢測經緯度數據
* @param $longitude
* @param $latitude
* @return bool
*/
function checkCoordinates($longitude, $latitude)
{
if ($longitude) {
$longitudePattern = '/^(-?\d{1,3}(?:\.\d+)?)$/'; // 經度,允許1到3位整數,后面跟著最多6位小數
if (!preg_match($longitudePattern, $longitude)) {
return false; // 經度格式不正確
}
// 檢查經緯度是否在有效范圍內
if (($longitude < -180) || ($longitude > 180)) {
return false; // 經度超出范圍
}
}
if ($latitude) {
$latitudePattern = '/^[-+]?([0-8]?\d(\.\d+)?|90(\.0+)?)$/'; // 緯度,允許-90到90,包括小數部分
if (!preg_match($latitudePattern, $latitude)) {
return false; // 緯度格式不正確
}
if (($latitude < -90) || ($latitude > 90)) {
return false; // 緯度超出范圍
}
}
// 如果所有檢查都通過,則返回true
return true;
}
}
3、復制到如下圖所示:
4、在接受參數地方,進行參數二次驗證過濾
這里以獲取門店列表為例:app/controller/api/v1/PublicController.php
5、重啟swoole,測試過濾驗證情況