HandleNickname.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Author: 芸众商城 www.yunzshop.com
  5. * Date: 22/02/2017
  6. * Time: 18:48
  7. */
  8. namespace app\backend\modules\member\services;
  9. use app\common\extensions\Validation;
  10. class HandleNickname
  11. {
  12. //处理微信昵称表情
  13. public function removeEmoji($clean_text) {
  14. // Match Emoticons
  15. $regexEmoticons = '/[\x{1F600}-\x{1F64F}]/u';
  16. $clean_text = preg_replace($regexEmoticons, '', $clean_text);
  17. // Match Miscellaneous Symbols and Pictographs
  18. $regexSymbols = '/[\x{1F300}-\x{1F5FF}]/u';
  19. $clean_text = preg_replace($regexSymbols, '', $clean_text);
  20. // Match Transport And Map Symbols
  21. $regexTransport = '/[\x{1F680}-\x{1F6FF}]/u';
  22. $clean_text = preg_replace($regexTransport, '', $clean_text);
  23. // Match Miscellaneous Symbols
  24. $regexMisc = '/[\x{2600}-\x{26FF}]/u';
  25. $clean_text = preg_replace($regexMisc, '', $clean_text);
  26. // Match Dingbats
  27. $regexDingbats = '/[\x{2700}-\x{27BF}]/u';
  28. $clean_text = preg_replace($regexDingbats, '', $clean_text);
  29. if( $clean_text && strpos($clean_text,'=') === 0 ){
  30. $clean_text = "'".$clean_text;
  31. }
  32. $clean_text = $this->removeEmojis($clean_text);
  33. return $clean_text;
  34. }
  35. //处理微信昵称表情
  36. public function removeEmojis($text){
  37. $len = mb_strlen($text);
  38. $newText = '';
  39. for($i=0;$i<$len;$i++){
  40. $str = mb_substr($text, $i, 1, 'utf-8');
  41. if(strlen($str) >= 4) continue;//emoji表情为4个字节
  42. $newText .= $str;
  43. }
  44. return $newText;
  45. }
  46. }