php过滤数据库就报错,php过滤掉emoji等无法存入MySQL数据库的字符简单示例

这篇文章主要为大家详细介绍了php过滤掉emoji等无法存入MySQL数据库的字符简单示例,具有一定的参考价值,可以用来参考一下。

对php过滤掉emoji等无法存入MySQL数据库的字符简单示例感兴趣的小伙伴,下面一起跟随512笔记的小编巴闭妹来看看吧!

/**

*

* @param

* @arrange (512.笔记) www.512pic.com

**/

/**

*方法一:

*匹配中英文、以及数字等过滤掉emoji

*最后字符串中只剩下中英文、以及数字

*/

function delEmomji($str){

$pattern = '/[\w\x{4e00}-\x{9fa5}]+/u';

preg_match_all($pattern,$str,$matchs);

//遍历匹配结果

$result = '';

foreach($matchs[0] as $value){

$result.= $value;

}

return $result;

}

/**

*方法二:

* 直接删除法

* 由于单个emoji字符的长度为4个字节,而我们使用的MySQL数据的utf-8编码最长只支持3字节字符,

* 所以插入emoji表情时会报错,最终的解决方案是将MySQL的编码修改为utf8mb4。

*/

function filterEmoji($str)

{

$str = preg_replace_callback(

'/./u',

function (array $match) {

return strlen($match[0]) >= 4 ? '' : $match[0];

},

$str);

return $str;

}

注:关于php过滤掉emoji等无法存入MySQL数据库的字符简单示例的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:

您可能感兴趣的文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值