過濾emoji表情符

1.使用正則匹配json

public  function remove_emoji($text){
        return preg_replace('/([0-9|#][\x{20E3}])|[\x{00ae}|\x{00a9}|\x{203C}|\x{2047}|\x{2048}|\x{2049}|\x{3030}|\x{303D}|\x{2139}|\x{2122}|\x{3297}|\x{3299}][\x{FE00}-\x{FEFF}]?|[\x{2190}-\x{21FF}][\x{FE00}-\x{FEFF}]?|[\x{2300}-\x{23FF}][\x{FE00}-\x{FEFF}]?|[\x{2460}-\x{24FF}][\x{FE00}-\x{FEFF}]?|[\x{25A0}-\x{25FF}][\x{FE00}-\x{FEFF}]?|[\x{2600}-\x{27BF}][\x{FE00}-\x{FEFF}]?|[\x{2900}-\x{297F}][\x{FE00}-\x{FEFF}]?|[\x{2B00}-\x{2BF0}][\x{FE00}-\x{FEFF}]?|[\x{1F000}-\x{1F6FF}][\x{FE00}-\x{FEFF}]?/u', '', $text);
    }code

2.unicode

 /**     把用戶輸入的文本轉義(主要針對特殊符號和emoji表情)      */     public static function filterEmoji($str){         if(!is_string($str))return $str;         if(!$str || $str=='undefined')return '';         $text = json_encode($str); //暴露出unicode         $text = preg_replace_callback("/(\\\u[ed][0-9a-f]{3}){2}/i",function($str){             return "?";         },$text); //將emoji的unicode留下,其餘不動,這裏的正則比原答案增長了d,由於我發現我不少emoji其實是\ud開頭的,反而暫時沒發現有\ue開頭。         return json_decode($text);     }
相關文章
相關標籤/搜索