Helper\Utils::placeholderReplace PHP Method

placeholderReplace() public static method

对邮件占位符进行替换 支持:
     {SITE_NAME} : 站点名称
     {nickname}  : 当前用户名称
     {email}     : 用户电子邮件
     {code}      : 验证码
     {newPassword}: 新密码
     {useTraffic}: 已用流量
     {transfer}  : 总流量
     {expireTime}: 到期时间
     {avatar}:     用户头像 (必须与 {email} 同时使用)
     {REGISTER_URL}: 注册校验链接
public static placeholderReplace ( $content, $params ) : string
$content
$params array
return string
    public static function placeholderReplace($content, $params)
    {
        if ($params['REGISTER_URL'] != null) {
            $url = BASE_URL . 'auth/verification?verification=' . urlencode($params['REGISTER_URL']);
            $params['REGISTER_URL'] = "<a href=\"{$url}\" target=\"_blank\" title=\"点击校验您的账户并完成注册!\">{$url}</a>";
        }
        if ($params['avatar'] === true) {
            $params['avatar'] = Utils::gravatar($params['email']);
        }
        // 替换
        $content = str_replace(['{SITE_NAME}', '{nickname}', '{email}', '{code}', '{newPassword}', '{useTraffic}', '{transfer}', '{expireTime}', '{REGISTER_URL}', '{avatar}'], [SITE_NAME, $params['nickname'], $params['email'], $params['code'], $params['newPassword'], $params['useTraffic'], $params['transfer'], $params['expireTime'], $params['REGISTER_URL'], $params['avatar']], $content);
        return $content;
    }

Usage Example

 public function run()
 {
     $users = User::getUserArrayByExpire();
     $notificationMail = Option::get('mail_stop_expire_notification');
     $mailContentTemplate = Option::get('custom_mail_stop_expire_content');
     if (!$notificationMail) {
         Option::set('mail_stop_expire_notification', 0);
         // 设置邮件提醒的系统参数
     }
     $mailer = Mailer::getInstance();
     $mailer->toQueue(true);
     foreach ($users as $user) {
         $user->stop();
         Logger::getInstance()->info('user [' . $user->email . '] 未续费或流量超用已被暂停服务');
         if ($notificationMail) {
             $mail = new Mail();
             $mail->to = $user->email;
             $mail->subject = '[' . SITE_NAME . '] ' . "用户 {$user->nickname},您的账户由于未续费或流量超用已被暂停服务";
             $params = ['nickname' => $user->nickname, 'email' => $user->email, 'useTraffic' => Utils::flowAutoShow($user->flow_up + $user->flow_down), 'transfer' => Utils::flowAutoShow($user->transfer), 'expireTime' => date('Y-m-d H:i:s', $user->expireTime)];
             $mailContent = Utils::placeholderReplace($mailContentTemplate, $params);
             $mailContent .= "<p style=\"padding: 1.5em 1em 0; color: #999; font-size: 12px;\">—— 本邮件由 " . SITE_NAME . " (<a href=\"" . BASE_URL . "\">" . BASE_URL . "</a>) 账户管控系统发送</p>";
             $mail->content = $mailContent;
             $mailer->send($mail);
         }
     }
     // 避免频繁更新 Option 单例对象,循环结束后再执行
     if ($notificationMail) {
         Option::set('mail_queue', 1);
     }
     // 2016-04-26 15:00 - by @Sendya Fixed issue #62
     // User::enableUsersByExpireTime(); // 启用已续费且流量未超过的用户
 }
All Usage Examples Of Helper\Utils::placeholderReplace