企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
| 隐藏部分字符串 | 方法一 | | --- | --- | ``` /** * [hide_str 隐藏部分字符串(如:姓名、用户名、身份证、IP、手机号等)函数] * [将一个字符串部分字符用$re替代隐藏] * @param string $string [待处理的字符串] * @param int $start [规定在字符串的何处开始, * 正数 - 在字符串的指定位置开始 * 负数 - 在从字符串结尾的指定位置开始 * 0 - 在字符串中的第一个字符处开始] * @param int $length [可选。规定要隐藏的字符串长度。默认是直到字符串的结尾。 * 正数 - 从 start 参数所在的位置隐藏 * 负数 - 从字符串末端隐藏] * @param string $re [替代符] * @return string 处理后的字符串 */ function hide_str($string, $start = 0, $length = 0, $re = '*') { if (empty($string)) return false; $strarr = array(); $mb_strlen = mb_strlen($string); while ($mb_strlen) {//循环把字符串变为数组 $strarr[] = mb_substr($string, 0, 1, 'utf8'); $string = mb_substr($string, 1, $mb_strlen, 'utf8'); $mb_strlen = mb_strlen($string); } $strlen = count($strarr); $begin = $start >= 0 ? $start : ($strlen - abs($start)); $end = $last = $strlen - 1; if ($length > 0) { $end = $begin + $length - 1; } elseif ($length < 0) { $end -= abs($length); } for ($i=$begin; $i<=$end; $i++) { $strarr[$i] = $re; } if ($begin > $end || $begin > $last || $end > $last) return false; return implode('', $strarr); } * Example hide_str('13133654653', 3, 4) #输出:131****4653 ,参数3即从下标第三位开始,参数4即从下标3开始隐藏四位,即3+4 hide_str('测试数据', 0, -1) #输出:测试数* ,参数0即从下标为0开始,-1则从最后一位往前计算要隐藏的个数 #具体的使用方法请查看代码 ``` | 隐藏部分字符串 | 方法二 | | --- | --- | ``` /** * [hide_phone 替换手机号中间数字为*号] * @param [type] $phone [手机号] * @return [type] [description] */ function hide_phone($phone) { $p = substr($phone,0,3)."****".substr($phone,7,4); return $p; } * Example $phone = 13133654653; hide_phone($phone); #输出:131****4653 #该方法使用起来更加简单,直接用字符串截取的方式 ```