本文目录一览:
- 1、php利用正则表达式匹配手机号码并把手机第五到第八位用*号替代输出
- 2、PHP字符替换 ----字符串的前面2个字符和最后一个字符不变,中间的换成***
- 3、php函数 输出一手机号中间五位用星号代替 怎么写啊
- 4、php 邮箱@前面留2位 其余用*号替换 @后面的全显示出来
- 5、PHP 只保留前前两个汉字 其他用*代替 前两个中间可能有别的字符
- 6、PHP字符串替换问题,把随机的姓名后面的一个汉字换成一个”*”,两个就是”**”,哪位高人指点一下.在线等~
php利用正则表达式匹配手机号码并把手机第五到第八位用*号替代输出
?php
$haoma="15012345678";
echo preg_replace("/(\d{4})(\d{3})/","$1***",$haoma);
?
PHP字符替换 ----字符串的前面2个字符和最后一个字符不变,中间的换成***
这个还要封装函数?就一行代码而已。。。。
$idcard=substr_replace($idcard,"*****",8,5);
自己多试验一下,就知道如何使用了。
从第8个后开始替换5个字符为*
php函数 输出一手机号中间五位用星号代替 怎么写啊
网站展示用户隐私数据的时候,需要安全处理。比如:对手机号码中间五位或多位进行*号替换。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);
}
}
运行结果:
php 邮箱@前面留2位 其余用*号替换 @后面的全显示出来
/**
* 只保留字符串首尾字符,隐藏中间用*代替(两个字符时只显示第一个)
* @param string $user_name 姓名
* @return string 格式化后的姓名
*/
function substr_cut($user_name){
$strlen = mb_strlen($user_name, 'utf-8');
$firstStr = mb_substr($user_name, 0, 1, 'utf-8');
$lastStr = mb_substr($user_name, -1, 1, 'utf-8');
return $strlen == 2 ? $firstStr . str_repeat('*', mb_strlen($user_name, 'utf-8') - 1) : $firstStr . str_repeat("*", $strlen - 2) . $lastStr;-php后几位用*代替
}
PHP 只保留前前两个汉字 其他用*代替 前两个中间可能有别的字符
思路:
获取待处理字符串的字符个数,遍历该字符串,如果是中文则保留(前两个)其他的全部用'*'代替,返回最终结果。
代码:
$str='ni年aho年dd后';//待处理字符串
$ret_zh_count = 0;//
$str_count = strlen($str);//字符个数
if ($str_count0) {
for($i=0;$i$str_count;$i++){
$str_i = mb_substr($str,$i,1);//获取字符串中的第$i个字符
if(preg_match('/^[\x{4e00}-\x{9fa5}]+$/u',$str_i) $ret_zh_count2){//判断是否为汉字且处理了2次
$ret .= $str_i;
$ret_zh_count ++;
}else{
$ret .= '*';
}
}
}
输出:
**年***年***
PHP字符串替换问题,把随机的姓名后面的一个汉字换成一个”*”,两个就是”**”,哪位高人指点一下.在线等~
写了个函数给你,我测试了的
?php
function cut_str($str,$len) {
$j=strlen($str)/2-1;
$m="";
for($i=1;$i=$j;$i++){$m=$m."*";}
$n = 0;
$tempstr = '';
for ($i=0; $i$len; $i++) {
if (ord(substr($str,$n,1)) 224) {
$tempstr .= substr($str,$n,3);
$n += 3;
$i++;
} elseif (ord(substr($str,$n,1)) 192) {
$tempstr .= substr($str,$n,2);
$n += 2;
$i++;
} else {
$tempstr .= substr($str,$n,1);
$n ++;
}
}
return $tempstr.$m;
}
?
?php echo cut_str("卓文君",1); ?
?php echo "br/"; ?
?php echo cut_str("司马相如",1); ?