> php教程 > php手册 > 屏蔽Email地址的smarty插件

屏蔽Email地址的smarty插件

WBOY
풀어 주다: 2016-06-21 08:57:17
원래의
1651명이 탐색했습니다.

作中用到的,觉得这样的显示工作,还是交给模板类比较合适。

工作中用到的,觉得这样的显示工作,还是交给模板类比较合适。所以写了这样的一个插件。

 

/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 */

/**
 * Smarty email_mask modifier plugin
 *
 * Type:     modifier

 * Name:     email_mask

 * Purpose:  mask part of email

 * Input:

 *         - string: input email
 *         - part: mask part [default '60'] unit: percent
 *         - position: mask position [default 'center'] (left, center, right)
 *         - maskString: mask string [default '*']
 *
 * @author  wendaming
 * @param string
 * @param integer
 * @param string
 * @param string
 * @return stringvoid
 */

function smarty_modifier_email_mask($string, $maskPart = 60, $position = 'center', $maskString = '*') {
    $emailName = substr($string, 0, strpos($string, '@'));
    $emailLen = strlen($emailName);
    $maskNum = floor($emailLen * $maskPart / 100);
    $maskName = '';

    if ($position == 'center') {
        $beginMask = floor(($emailLen - $maskNum) / 2);
    } elseif ($position == 'left') {
        $beginMask = 0;
    } else {
        $beginMask = $emailLen - $maskNum;
    }

    $count = 0;
    for ($i = 0; $i         if ($i >= $beginMask && $count             $maskName .= $maskString;
            ++ $count;
        } else {
            $maskName .= $emailName{$i};
        }
    }

    return str_replace($emailName . '@', $maskName . '@', $string);
}



관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿