文章目录

php正则表达式过滤emoji表情符号

现在中国有手机的人用微信的应该占了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能过滤掉,偶尔还是会有一些漏网之鱼。

如果你有什么好的代码,不妨分享到三体教程上面来。

本文网址:http://www.santii.com/article/18.html

  • 1楼 [2018-05-02]“正则表达工1”可以正常使用,“正则表达式2”部分表情不行。感谢小编的分享
    • 2楼 [2018-05-07]的确如楼上所说,表达式2部分不能解决。

您可能还会对这些正则表达式文章感兴趣


数据更新时间:2018-11-14