本篇内容介绍了“php如何隐藏部分内容”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
php隐藏部分内容的方法:1、创建一个PHP示例文件;2、通过“function hidestr($string, $start = 0, $length = 0, $re = '*') {...}”方法实现隐藏即可。
本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑
php 怎么隐藏部分内容?
PHP隐藏部分字符串(如:姓名、用户名、身份证、IP、手机号等)函数
此函数用法 和 PHP内置函数 substr(),几乎是一样的。只不过 substr() 是用于截取,而hidestr()是隐藏~
/**
* 将一个字符串部分字符用$re替代隐藏
* @param string $string 待处理的字符串
* @param int $start 规定在字符串的何处开始,
* 正数 - 在字符串的指定位置开始
* 负数 - 在从字符串结尾的指定位置开始
* 0 - 在字符串中的第一个字符处开始
* @param int $length 可选。规定要隐藏的字符串长度。默认是直到字符串的结尾。
* 正数 - 从 start 参数所在的位置隐藏
* 负数 - 从字符串末端隐藏
* @param string $re 替代符
* @return string 处理后的字符串
*/
function hidestr($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);
}
//隐藏手机号中间4位
hidestr('18600005940', 3, 4); //186****5940
//只保留姓名里的最后一个字,常见与ATM,网银等
hidestr('谢世亮', 0, -1); //**亮
//隐藏邮箱部分内容,常见网站帐号,如支付宝等
list($name, $domain) = explode('@', '979137@qq.com');
hidestr($name, 1, -1) . '@' . hidestr($domain, 0, 2); // 9****7@**.com
“php如何隐藏部分内容”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。