首頁 >後端開發 >PHP問題 >php 怎麼隱藏部分內容

php 怎麼隱藏部分內容

藏色散人
藏色散人原創
2022-01-27 09:33:213024瀏覽

php隱藏部分內容的方法:1、建立一個PHP範例檔案;2、透過「function hidestr($string, $start = 0, $length = 0, $re = '*') {. ..}”方法實作隱藏即可。

php 怎麼隱藏部分內容

本文操作環境: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(&#39;&#39;, $strarr);
}
//隐藏手机号中间4位
hidestr(&#39;18600005940&#39;, 3, 4); //186****5940
//只保留姓名里的最后一个字,常见与ATM,网银等
hidestr(&#39;谢世亮&#39;, 0, -1); //**亮
//隐藏邮箱部分内容,常见网站帐号,如支付宝等
list($name, $domain) = explode(&#39;@&#39;, &#39;979137@qq.com&#39;);
hidestr($name, 1, -1) . &#39;@&#39; . hidestr($domain, 0, 2); // 9****7@**.com

推薦學習:《PHP影片教學

以上是php 怎麼隱藏部分內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn