php正则表达式过滤emoji表情符号-08-23 21:41
现在中国有手机的人用微信的应该占了90%吧!小编没事的时候也是天天玩微信。
不过不是发朋友圈这些,而是上面有很多感兴趣的文章。
有一次看到一篇文章写得很好,就打算转载到自己的网站上面。
兴匆匆的复制、粘贴,点击提交。
万万没想到的是竟然出错,找了半天原因,才发现是文章里面的emoji符号搞的鬼。
大家都知道,微信里面大部分文章都会有emoji表情,只有一两个还好,找到删掉就行。
要是多了,怎么办?
小编想到的就是批量用正则达式将emoji去掉。
以下为相关正则表达式代码,拿去用吧!
正则表达式1 php代码<?php
function emojiFilter($text){//过滤emoji表情符号
$text = json_encode($text);
preg_match_all("/(\\\\ud83c\\\\u[0-9a-f]{4})|(\\\\ud83d\\\u[0-9a-f]{4})|(\\\\u[0-9a-f]{4})/", $text, $matchs);
if(!isset($matchs[0][0])) { return json_decode($text, true); }
$emoji = $matchs[0];
foreach($emoji as $ec) {
$hex = substr($ec, -4);
if(strlen($ec)==6) {
if($hex>='2600' and $hex<='27ff') {
$text = str_replace($ec, '', $text);
}
} else {
if($hex>='dc00' and $hex<='dfff') {
$text = str_replace($ec, '', $text);
}
}
}
return json_decode($text, true);
}
?>
正则表达式2 php代码<?php
function smarty_modifier_emojistrip($string)
{
return preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $string);
}
?>
不过小编觉得,这代码不是很全,基本上的emoji能过滤掉,偶尔还是会有一些漏网之鱼。
如果你有什么好的代码,不妨分享到三体教程上面来。