本文實例講述了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;
}
另外還發(fā)現(xiàn)一個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;
}
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php正則表達式用法總結》、《php程序設計安全教程》、《php安全過濾技巧總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php字符串(string)用法總結》及《php+mysql數據庫操作入門教程》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:- php 正則去掉p> /p> 空格 與p>br/>/p>
- php正則表達式使用方法整理集合
- PHP常用正則表達式精選(推薦)
- PHP正則表達式處理函數(PCRE 函數)實例小結
- PHP正則表達式筆記與實例詳解
- PHP中PCRE正則解析代碼詳解
- PHP正則判斷一個變量是否為正整數的方法
- PHP正則驗證字符串是否為數字的兩種方法并附常用正則
- PHP正則匹配到2個字符串之間的內容方法
- PHP正則解析多重循環(huán)模板示例
- PHP實現(xiàn)正則匹配所有括號中的內容
- PHP使用正則表達式實現(xiàn)過濾非法字符串功能示例
- PHP簡單實現(xiàn)正則匹配省市區(qū)的方法
- PHP實現(xiàn)正則表達式分組捕獲操作示例
- phpstorm 正則匹配刪除空行、注釋行(替換注釋行為空行)
- PHP利用正則表達式實現(xiàn)手機號碼中間4位用星號(*)替換顯示功能
- 史上最全的PHP正則表達式(手機號需要加上177-***)
- PHP正則之正向預查與反向預查講解與實例