本文實例講述了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;}
希望本文所述對大家PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選