php過濾emoji四字節字符

過濾四字節字符的背景是,mysql默認的utf-8是沒法寫入四字節字符的,一種解決方式是修改數據庫配置,另一種是過濾掉字符。更偏向於過濾掉這類字符,這樣就從入庫的根源解決問題。mysql

 

過濾通常方式都是使用正則,正則表達有兩種方式,一種是按照unicode 編碼,中emoji表情字段範圍刪除,兩位一種是求字節個數,更偏向於第二種,由於第一種,可能會出現區間段包含不完整問題。sql

 

 // 過濾掉emoji表情
 public static function filterEmoji($str)
{
 $str = preg_replace_callback(
 '/./u',
 function (array $match) {
 return strlen($match[0]) >= 4 ? '' : $match[0];
 },
 $str);

 return $str;
 }數據庫

相關文章
相關標籤/搜索