php對emoji處理函數

/* * emoji編碼函數 * @author E */ function user_text_encode($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})/i",function($str){ return addslashes($str[0]); },$text); //將emoji的unicode留下,這裏的正則比原來增加了d,很多emoji實際上是\ud開頭的,反而沒發現有\ue開頭。 return json_decode($text); } /* * emoji解碼函數 * @author E */ function user_text_decode($str){ $text = json_encode($str); //暴露出unicode $text = preg_replace_callback('/\\\\\\\\/i', function ($str) { return '\\'; }, $text); //將兩條斜槓變成一條 return json_decode($text); } /* * emoji過濾函數 * @author E */ function filter_emoji($data){ if(is_array($data) && !empty($data)){ foreach ($data as $k=>$v){ if(is_array($v) && !empty($v)){ $data[$k] = filter_emoji($v); }else{ $v = json_encode($v); $data[$k] = json_decode(preg_replace("/(\\\u[ed][0-9a-f]{3})/i","",$v)); } } } return $data; }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章