用函数来实现
网站展示用户隐私数据的时候,需要安全处理。比如:对手机号码中间五位或多位进行*号替换。PHP常用处理的方式有两种,一种是用substr进行截取,然后拼接*号;另一种是使用正则替换。示例代码如下:
//index.php
<?php
header("Content-type:text/html;charset=utf-8;");
//测试
//纯手机号码
$phone="10021012110";
echo phoneSafeDeal($phone);
echo "<br/>";
$phoneStr="联系方式:10021012110";
echo phoneSafeDeal($phoneStr,true);
/**
* 手机号码安全处理(中间五位用*代替)
*
* @param String $phone
* @param boolean $string
*/
function phoneSafeDeal($phone,$flag=false){
//字符串中包含手机号码替换
if($flag){
return preg_replace('/(\d{3})\d{5}(\d{3})/', '${1}*****${2}', $phone);
}else{
//纯手机号码处理
return substr($phone,0,3)."*****".substr($phone,8,3);
}
}运行结果:
温馨提示:答案为网友推荐,仅供参考
第1个回答 2009-04-02
好像我不久前回个这个帖子的,是某位老师布置的作业吗~
希望下面的代码可以对你有所启发,使用正则表达式替换:
<?php
$s='孙悟空:13996312365 猪八戒:13578958741';
$s=preg_replace('#(\d{3})\d{5}(\d{3})#', '${1}*****${2}', $s);
echo $s;
?>
希望下面的代码可以对你有所启发,使用正则表达式替换:
<?php
$s='孙悟空:13996312365 猪八戒:13578958741';
$s=preg_replace('#(\d{3})\d{5}(\d{3})#', '${1}*****${2}', $s);
echo $s;
?>
第2个回答 2015-10-28
一个比较简单的参考程序如下:
function suohao($phone){$p = substr($phone,0,3)."*****".substr($phone,8,3);
return $p;
}
第3个回答 2009-04-03
用一楼的代码最少,值得一用。
不过如果你实在不了解,就使用strlen含数,substr含数,并结合for循环可以完成,你可以查找一下strlen,substr这两个含数的作用应当就能大概明白了。
由于代码太多,就没有写下来,请见谅。
不过如果你实在不了解,就使用strlen含数,substr含数,并结合for循环可以完成,你可以查找一下strlen,substr这两个含数的作用应当就能大概明白了。
由于代码太多,就没有写下来,请见谅。
第4个回答 2009-04-04
function suohao($phone){
$p = substr($phone,0,3)."*****".substr($phone,8,3);
return $p;
}本回答被提问者采纳
$p = substr($phone,0,3)."*****".substr($phone,8,3);
return $p;
}本回答被提问者采纳