在PHP的开发中,有时候我们需要来替换一些字符串,此时可以通过使用函数substr_replace来实现相应的替换,比如用PHP实现电话号码隐藏中间四位用星号代替显示的话,就需要用此函数来进行替换中间四位号码。
函数说明
substr_replace --- 取代字符串的一部份字符串
语法 : string substr_replace (string string, string replacement, int start [, int length])
说明 :
substr_replace()取代 string的部份字符串,由参数 start和 length来指定界限,以参数 replacement来取代。
如果参数 start是正数,取代的字符串将会开始于 string的第 start个字元。
如果参数 start是正数,取代的字符串将会开始于 string结尾的第 start个字元。
如果有给予参数 length而且是正数时,它表示 string要被取代的部份字符串的长度。如果 length是负数时,它表示从 string结尾算起,要中止取代的字元的数目。如果没有给予这个参数,则它会预设成参数 string的长度。
通过substr_replace函数来替换电话号码的中间四位:$tel = "13800138000"
$str = substr_replace($tel,'****',3,4);
结果输出:138****8000
通过以上就实现了隐藏电话号码的功能,当然我们也可以通过正则来匹配电话号码,从而来写自定义函数来实现隐藏中间位数的电话号码。/**
* hidetel 隐藏电话号码中间4位
* @param string $phone 电话号码
* @return string 返回隐藏4位号码的手机号码
*/
function hidetel($phone){
$IsWhat = preg_match('/(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)/i',$phone);
if($IsWhat == 1){
return preg_replace('/(0[0-9]{2,3}[\-]?[2-9])[0-9]{3,4}([0-9]{3}[\-]?[0-9]?)/i','$1****$2',$phone);
}else{
return preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);
}
}