删除表情符号/ Unicode字符

时间:2018-07-18 14:07:17

标签: php mysql html5 utf-8 utf8mb4

我的网站和数据库设置为utf-8和utf8mb4。

在textareas上,当用户放置utf-8符号/表情符号时完全可以。

但是在某些输入字段(名称,地址等)上,我想消除那些“有趣的符号”的可能性,只处理基本的文本和数字,包括丹麦字符æøå,重音符号和-_'@之类的符号()?= ,.:;!“#&<>等

我将如何处理?

是否有一些本地php函数来去除unicode符号/字符,或者我是否必须为此找到/制作一个特定的regex函数?

1 个答案:

答案 0 :(得分:4)

有一些用于检查编码的函数:http://php.net/manual/en/function.mb-check-encoding.php,但要去除字符,我认为您需要使用正则表达式:

function StripNonUTF($str){
  return preg_replace('/[^\pL\pM[:ascii:]]+/g', '', $str);
}
  • \ pL 匹配来自任何语言的任何字母
  • \ pM 与打算与其他字符组合的字符(例如重音符号,变音符,包围盒等)相匹配
  • [:ascii:] 与ASCII值从0到127的字符匹配
相关问题