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