PHP字符串加*
思路:
- 获取第一个字符或文字
- 获取最后一个字符或文字
- 一头一尾,中间加*
尝试用substr方法,发现对中文的支持有问题。
后来发现mb_substr很好的解决了这个问题。
<?php
class CryptoStr{
//中间加密字符串
function getCryptoStr($str) {
$len = strlen($str);
$first = substr( $str, 0, 1 );
$last = substr( $str, $len-1,1 );
echo $first."****".$last;
}
function getCryptoMbStr($str) {
$len = mb_strlen($str,'utf-8');
$first = mb_substr($str,0,1,'utf-8');
$last = mb_substr($str,$len-1,1,'utf-8');
echo $first."****".$last;
}
}
$obj = new CryptoStr();
// $obj->getCryptoStr('zabcs6');
// $obj->getCryptoStr('中国');
$obj->getCryptoMbStr('zabcs6');
$obj->getCryptoMbStr('中国');
?>
输出结果:z****6 中****国
Tips:通过测试发现mb_str对中文的支持很棒!