屏蔽Email地址的smarty插件

80酷酷网    80kuku.com

  作中用到的,觉得这样的显示工作,还是交给模板类比较合适。工作中用到的,觉得这样的显示工作,还是交给模板类比较合适。所以写了这样的一个插件。 <?php
/**
 * 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 <wendaming at comsenz dot com>
 * 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 < $emailLen; ++ $i) {
        if ($i >= $beginMask && $count < $maskNum) {
            $maskName .= $maskString;
            ++ $count;
        } else {
            $maskName .= $emailName{$i};
        }
    }    return str_replace($emailName . '', $maskName . '', $string);
}

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: