征一高效的隐蔽字符函数 范例:字符串:世纪乐知(北京)网络技术有限公司期待结果:世纪XXX北京)网络技术有限公司即从第2个字开始隐蔽3个字符,因使用频率很高,希望有一个最高效的方法。当前使用了2次mb_substr拼接的方法,觉得不甚如意,求更合理的方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $str='世纪乐知(北京)网络技术有限公司';if($str=='世纪乐知(北京)网络技术有限公司')$str='世纪XXX北京)网络技术有限公司'; 有证据,说明mb_substr,影响到效率了? @yangball这是一个foreach,不可能使用判断。@amani11没有,只是觉得自写的函数中用了2个mb_substr拼接,假如一个for有50个就等同于用了100次mb_substr,但一个mb_substr又无法实现,所以想看下有没有别的方法。 echo substr_replace('世纪乐知(北京)网络技术有限公司', 'XXX', 6, 7);utf8编码。。你可能要根据ord($content{12})是否大于127来判断替换的长度。。 preg_replace('(([\w]|[\x{4e00}-\x{9fa5}]{3}){2})(([\w]|[\x{4e00}-\x{9fa5}]{3}){3})(.*?)','\\1XXX\\3',$str); $str=preg_replace('/^(.{2})(.{3})/u','\\1XXX',$str);这个就可以了 //已测试的$str="世纪乐知(北京)网络技术有限公司";$str=preg_replace('/^(.{2})(.{3})/u','\\1XXX',$str);echo $str; 谢谢,效率最高的的确是这个内置函数了,只可惜对中文支持不好,如欲再加判断编码则不如用mb_substr拼接了。刚搜到一个自定义的mb_substr_replace(),也是用mb_substr拼接的。http://github.com/Xeoncross/php_utf8/blob/master/utf8.php算了,先这么用着吧。 谢谢,这当属最简洁有效的方法了。就是希望尽可能的少在for里使用正则。 为什么php不能上传中文文件? php5中使用dll 大家帮忙给推荐一个PHP开发的在线知识库吧?谢谢了。 咨询! $_SERVER的问题,我说为什么一直url重写失败,去不掉index.php php4 如何支持 mysql5 啊,找了,半天也没有找到,请各位帮忙!!!! 请大家推荐一个能试用的外国收费空间(要快的) 有没有可以检测到客户端的cookies开了没有的函数或方法? 高分求救,解决了马上给分 这个是什么加密,能解开吗? 请教这个sql该如何写? php如何访问对象的孩子?
$str='世纪乐知(北京)网络技术有限公司';
if($str=='世纪乐知(北京)网络技术有限公司')
$str='世纪XXX北京)网络技术有限公司';
这是一个foreach,不可能使用判断。@amani11
没有,只是觉得自写的函数中用了2个mb_substr拼接,假如一个for有50个就等同于用了100次mb_substr,但一个mb_substr又无法实现,所以想看下有没有别的方法。
这个就可以了
//已测试的
$str="世纪乐知(北京)网络技术有限公司";
$str=preg_replace('/^(.{2})(.{3})/u','\\1XXX',$str);
echo $str;
谢谢,效率最高的的确是这个内置函数了,只可惜对中文支持不好,如欲再加判断编码则不如用mb_substr拼接了。刚搜到一个自定义的mb_substr_replace(),也是用mb_substr拼接的。
http://github.com/Xeoncross/php_utf8/blob/master/utf8.php算了,先这么用着吧。
谢谢,这当属最简洁有效的方法了。就是希望尽可能的少在for里使用正则。