php屏蔽电话号码中间四位示例

屏蔽电话号码中间数字这个我们在一些购物网站常见到的手法了,下面我利用正则表达式来实现,具体原理我也不说多了大家都知道的,这里直接给例子.

函数代码如下:

  1. function hidtel($phone){
  2. $IsWhat = preg_match('/(0[0-9]{2,3}[-]?[2-9][0-9]{6,7}[-]?[0-9]?)/i',$phone); //固定电话
  3. if($IsWhat == 1){
  4. return preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i','$1****$2',$phone);
  5. }else{
  6. return preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);
  7. }
  8. }
  9. //示例:
  10. $phonenum = "13966778888";
  11. echo hidtel($phonenum);
  12. //最后输出:139****8888

例子L

1、屏蔽手机号码中间段,代码如下:

preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);

2、屏蔽固定电话中间段,代码如下:

preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i','$1****$2',$phone);

例如如下代码:

  1. $phone = '010-88888888-8';
  2. $phone1 = '13888888888';
  3. $phone = preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i','$1****$2',$phone);
  4. $phone1 = preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone1);
  5. echo $phone,'<br>www.111Cn.net';
  6. echo $phone1,'<br>';
  7. //结果输出:
  8. //138****8888
  9. //010-8****888