瓦窑源码 快速建站好帮手
客服QQ客服QQ 微信号微信号

Phpcmsv9文章如何采集过滤Emoji表情

最近有用户反应,当文章内容含有Emoji表情显得内容不完整、文章被断开了,92模板网小编经过检查发现这是V9数据库不支持保存Emoji字符,只要解决掉PHPCMS过滤Emoji表情就可以了,今天就来讲一讲Phpcms v9文章采集过滤Emoji表情的方法。

织梦网站源码

默认Phpcms v9的Mysql数据库类型为utf8字符集,于是会出现存蓄问题,解决Phpcms v9文章入库Emoji字符的方法,还是得从Mysql入手,有两个方法和大家分享一下。

方法一:将数据库修改未utf8mb4字符集,解决Phpcms v9文章不能保存Emoji字符的问题。

如果你的mysql版本>=5.5.3,你可以尝试直接将utf8直接升级为utf8mb4字符集,数据上不用做转换,基本上不会有丢失。当然,记得设置前尽量先备份好再操作。

这样,4字节的utf8编码可完美兼容旧的3字节utf8字符集,并且可以直接存储emoji表情,至于字节增大带来的性能损耗,中小项目可以忽视。

方法二:增加Emoj过滤函数,入库前先将数据过滤、避免Phpcms v9文章不能保存Emoji字符。

具体方法:修改phpcms/libs/functions/extention.func.php文件,加入以下Emoj过滤函数。

//过滤掉emoji表情 @齐鲁建站
function filterEmoji($str){
$str = preg_replace_callback(
'/./u',
function (array $match) {
return strlen($match[0]) >= 4 ? '' : $match[0];
},
$str);
 return $str;
}

这一过滤函数的原理是:遍历字符串中的每个字符,如果该字符的长度为4个字节,就将其删除。

或者使用这一函数过滤也可以:

//过滤掉emoji表情 @齐鲁建站
function filterEmoji($string){
$regex_emoticons = '/[\x{1F600}-\x{1F64F}]/u';
$clear_string = preg_replace($regex_emoticons, '', $string);
$regex_symbols = '/[\x{1F300}-\x{1F5FF}]/u';
$clear_string = preg_replace($regex_symbols, '', $clear_string);
$regex_transport = '/[\x{1F680}-\x{1F6FF}]/u';
$clear_string = preg_replace($regex_transport, '', $clear_string);
$regex_misc = '/[\x{2600}-\x{26FF}]/u';
$clear_string = preg_replace($regex_misc, '', $clear_string);
$regex_dingbats = '/[\x{2700}-\x{27BF}]/u';
$clear_string = preg_replace($regex_dingbats, '', $clear_string);
return $clear_string;
}

这一过滤函数的原理是:遍历字符串中的字符,判断替换。

之后,修改内容模型文件phpcms/model/content_model.class.php中的public function add_content函数中,在$id = $modelinfo['id'] = $this->insert($systeminfo,true);数据入库前对content内容过滤:

//过滤中Emoji表情 @齐鲁建站
$modelinfo['content'] = filterEmoji($modelinfo['content']);

这样把Emoji表情过滤掉。

以上就是关于PHPCMS过滤Emoji表情的所有内容,举一反三,类似的方法,还可以使用base64把内容先编码转换保存到数据库,之后在调用的时候再decode,这也不失为一个方法。

微信公众号

TAG标签:PHPCMS PHPCMS过滤Emoji表情

上一个:Phpcmsv9如何实现远程附件接入阿里云OSS云存储
下一个:PHPCMSV9会员中心如何将邮箱和密码分开修改

  • 信息来源:瓦窑源码
  • 发布时间:2020-07-05
  • 阅读人数:

瓦窑源码专注织梦网站源码与静态模板分享,提供织梦模板,dedecms模板,织梦企业源码,dedecms商业源码和织梦免费模板下载

织梦源码 - 织梦模板 - 网页素材 - 织梦教程 - 站长学院 - 热门排行 - Tags标签 - 网站地图 - 免责声明

Copyright©2021 瓦窑源码 Why114.COM 版权所有 鲁ICP备20017802号-2

客服QQ:1847629575 微信号:qilujianzhan

展开