php 字符串替换中文,PHP中文字符串替换其中为*的方法

php 字符串替换中文,PHP中文字符串替换其中为*的方法在项目中需要对字符串的部分进行隐藏或者替换。譬如手机号码的中间几位进行隐藏,中文名字的中间替换为*号等。英文和数字等可直接用php的自带的函数进行处理。但是中文因为编码的缘故会出现不一样的效果。需要自己定义方法进行处理。此处针对大多数UTF-8的用户。//英文和数字等substr_replace()函数把字符串的一部分替换为另一个字符串。substr_replace(string,replace…

大家好,又见面了,我是你们的朋友全栈君。

在项目中需要对字符串的部分进行隐藏或者替换。譬如手机号码的中间几位进行隐藏,中文名字的中间替换为*号等。

英文和数字等可直接用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 + $len;//传入指定长度则为开始长度+指定长度

}

$i = 0;

$returnString = ”;

while ($i < $count) {//循环该字符串

$tmpString = mb_substr($string, $i, 1, ‘UTF-8’); // 与mb_strlen编码一致

if ($start <= $i && $i < $end) {

$returnString .= $repalce;

} else {

$returnString .= $tmpString;

}

$i ++;

}

return $returnString;

}

//使用正则表达式—视情况而定

preg_replace()//执行正则表达式的搜索和替换

preg_replace($pattern, $replacement, $string);

[/php]

No matter how your heart is grieving, if you keep on believing, the dreams that you wish will come true.

不管心有多痛,若坚信不移,梦想总会成真。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142495.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Windows 技术篇-LDSGameMaster文件夹有什么用,删除方法

    Windows 技术篇-LDSGameMaster文件夹有什么用,删除方法LDS是鲁大师的拼写,应该是用过鲁大师,偷偷给你安装的。分析:没什么用,流氓程序,还很大占地方,4个G,可以放心的卸掉。卸载方法:找到里面的卸载程序来卸载,卸载完后把文件夹删除就好了。

  • 车道线识别之 tusimple 数据集介绍

    车道线识别之 tusimple 数据集介绍Tusimple是一家做自动驾驶的公司,他也公布了一些其在自动驾驶领域积累的数据,其中有一些是和车道线检测相关的。2018年6月份,其举办了一次以摄像头图像数据做车道检测的比赛,公开了一部分数据及

  • NB-IoT:指定频点操作「建议收藏」

    NB-IoT:指定频点操作「建议收藏」NBIOT指定频点后需要关闭射频开关,然后再清频点再开射频开关,最后附着网络。实际使用中最好不要锁定频点,否则很容易造成连接不上。AT+NEARFCN=0,2508,123——这里取值均为例子AT+CFUN=0AT+NCSEARFCNAT+CFUN=1AT+CGATT=1先设置频点,然后再清除频点,然后在CGATT…

  • 解决IBasicVideo::GetCurrentImage返回0x8000ffff(E_UNEXPECTED Catastrophic failure)错误

    解决IBasicVideo::GetCurrentImage返回0x8000ffff(E_UNEXPECTED Catastrophic failure)错误经过查阅一番资料后,得到如下的解决方案:方案1:使用替代的接口ISampleGrabber,代替IBasicVideo,具体调用的函数为:ISampleGrabber::GetCurrentBuffer.可以参考文章:dshow中使用SampleGrabberfilter抓取图像。在我的开发环境win10+vs2013下没能找到ISampleGrabber接口;而在官方文档中提到ISa…

  • iOS抓包工具Charles的使用

    iOS抓包工具Charles的使用首先,设置手机的网络连接电脑共享wifi,同时设置端口号; 其次,涉及到https抓包时,需要设置手机安装和信任ssl证书,以及设置Charles中ssl的配置。一、下载与安装Charles:charles-proxy-3.10.2.dmgjavaSDK:javaforosx.dmg二、网络环境与手机的配置1、开启电脑共享wifi,同时设置主机代理与端口号(1)系统偏好设置——>共享——>互联网共享;(2)系统偏好设置——>网络——>以太网——>高级——&

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号