# 附件十四 微信昵称的处理方法 * 首先在控制器基类中创建一个方法 ~~~ protected function removeEmoji($clean_text) { // Match Emoticons $regexEmoticons = '/[\x{1F600}-\x{1F64F}]/u'; $clean_text = preg_replace($regexEmoticons, '', $clean_text); // Match Miscellaneous Symbols and Pictographs $regexSymbols = '/[\x{1F300}-\x{1F5FF}]/u'; $clean_text = preg_replace($regexSymbols, '', $clean_text); // Match Transport And Map Symbols $regexTransport = '/[\x{1F680}-\x{1F6FF}]/u'; $clean_text = preg_replace($regexTransport, '', $clean_text); // Match Miscellaneous Symbols $regexMisc = '/[\x{2600}-\x{26FF}]/u'; $clean_text = preg_replace($regexMisc, '', $clean_text); // Match Dingbats $regexDingbats = '/[\x{2700}-\x{27BF}]/u'; $clean_text = preg_replace($regexDingbats, '', $clean_text); return $clean_text; } ~~~ * 在数据表中创建一个新的字段 nickname_json * 在微信的Model中创建以下修改器和获取器即可 ~~~ protected function setNicknameAttr($value,$data){ $this->setAttr("nickname_json",$value,$data) ; return $this->removeEmoji($value); } protected function setNicknameJsonAttr($value){ return json_encode($value) ; } protected function getNicknameJsonAttr($value){ $nickname = json_decode($value); return $nickname ? $nickname : $value; } ~~~ > 这样,nickname完成的信息通过json形式存到nickname_json字段中 > nickname字段只是过滤掉特殊符号的名称 > 当然 之存储的时候要使用模型才有效