大家好,又见面了,我是你们的朋友全栈君。
在项目中需要对字符串的部分进行隐藏或者替换。譬如手机号码的中间几位进行隐藏,中文名字的中间替换为*号等。
英文和数字等可直接用php的自带的函数进行处理。但是中文因为编码的缘故会出现不一样的效果。需要自己定义方法进行处理。此处针对大多数UTF-8的用户。
//英文和数字等
substr_replace() 函数把字符串的一部分替换为另一个字符串。
substr_replace(string,replacement,start,length);
echo substr_repalce(‘18687494999′,’****’,3,4);//得到186****4999
//对于UTF-8的中文
//使用该方法可以替换中文字符串的内容–使用方法类似于substr_replace_cn
//在utf-8下一个汉字占三个字节
//$repalce 为要替换成的字符串 start为开始的字符位置默认0开始 len为替换的长度
public function substr_replace_cn(string, repalce = ‘*’,start = 0,len = 0) {
count = mb_strlen(string, ‘UTF-8’); //此处传入编码,建议使用utf-8。此处编码要与下面mb_substr()所使用的一致
if(count) { return !string; }
if($len == 0){
end = count; //传入0则替换到最后
}else{
end = start +
}
$i = 0;
$returnString = ”;
while (i <
tmpString = mb_substr(string,
if (start <= i <
returnString .= repalce;
} else {
returnString .= tmpString;
}
$i ++;
}
return $returnString;
}
//使用正则表达式—视情况而定
preg_replace()//执行正则表达式的搜索和替换
preg_replace(pattern, replacement,
[/php]
No matter how your heart is grieving, if you keep on believing, the dreams that you wish will come true.
不管心有多痛,若坚信不移,梦想总会成真。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142495.html原文链接:https://javaforall.cn