本文實例講述了PHP正則過濾處理微信昵稱中emoji字符的方法。分享給大家供大家參考,具體如下:
今天剛做了一個微信應用,在獲取微信昵稱的過程中報錯了,經查原因是微信昵稱中包含emoji字符,在寫入數據庫的時候出錯,所以想辦法在寫入之前把這些字符過濾掉,于是在網上找到一個方法,記錄一下。
移除微信昵稱中的emoji字符:
- function removeEmoji($nickname) {
- $clean_text = "";
- // Match Emoticons
- $regexEmoticons = '/[/x{1F600}-/x{1F64F}]/u';
- $clean_text = preg_replace($regexEmoticons, '', $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;
- }
另外還發現一個github開源應用,還沒有研究測試。
https://github.com/iamcal/php-emoji
補充:今天又在網上找到一個更簡單的方法
- // 過濾掉emoji表情
- function filterEmoji($str)
- {
- $str = preg_replace_callback( '/./u',
- function (array $match) {
- return strlen($match[0]) >= 4 ? '' : $match[0];
- },
- $str);
- return $str;
- }
新聞熱點
疑難解答