方法1 ,有漏洞,$new_str=8989,当号码为18989896311时,就替换掉了最前面的8989,导致漏洞错误。
<?php /*隐藏电话号码*/ /*知识点: 1.substr 字符串截取函数 2.str_replace 字符串替换函数 */ $str = "15900006311";//159****6311 $new_str = substr($str,3,4);//第二个参数为开始位置,负数从最后开始数 第三个参数为取多少 $new_str1=str_replace($new_str,'****',$str);//第一个参数:寻找的字符串,第二个参数:要换成什么字符串 ,第三个参数:字符串来源,原字符串 echo $new_str1 ;//159****6311 ?>
方法2
<?php /*隐藏电话号码*/ /*知识点: 1.substr 字符串截取函数 2.str_replace 字符串替换函数 */ $str = "15942806311";//159****6311 $str1 = substr($str,0,3); $str2 = substr($str,-4); $new_str = $str1.'****'.$str2; echo $new_str ;//159****6311 ?>
方法2 字符串长度大于10输出'......'
<?php /*知识点: 1.substr 字符串长度大于10输出'......' */ $str = "15942806311";//159****6311 $str1 = substr($str,0,10).'......'.$str2; $new_str = strlen($str); echo 1; ?>
方法2: 过滤
<?php /*知识点: 1.substr 字符串长度大于10输出'......' */ $str = "....188...mm15942806311...";//159****6311 $new_str = trim($str,'.');//ltrim去除左边的点,rtrim去除右边的点,trim去除左右边的点,中间去不掉,所以, echo $new_str; $new_str1=str_replace('.','',$str);//去掉所有的点 echo $new_str1; ?>