function hidtel($phone) {
// 固定電話格式:0xx-xxxxxxx 或 0xxx-xxxxxxxx
$isLandline = preg_match('/(0[0-9]{2,3}[-]?[2-9][0-9]{6,7}[-]?[0-9]?)/i', $phone);
if ($isLandline) {
return preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i', '$1****$2', $phone);
} else {
// 手機號:13/15/18 開頭,11 位
return preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i', '$1****$2', $phone);
}
}
$num = "13966778888"; $masked = substr_replace($num, '****', 3, 4); // 從第 4 位開始替換 4 個字符 // 結果:139****8888
$phonenum = "13966778888"; echo hidtel($phonenum); // 輸出:139****8888 echo substr_replace($phonenum, '****', 3, 4); // 同上
function suohao($phone) {
return substr($phone, 0, 3) . '*****' . substr($phone, 8, 3);
}
根據業務需求選擇:正則版可同時處理固話與手機,截取版效能更高且代碼簡潔。