删除emojis/unicode字符

fhg3lkii  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(425)

我的网站和数据库设置为utf-8和utf8mb4。
在文本区域,当用户使用utf-8符号/表情符号时,这是非常好的。
但在某些输入字段(姓名、地址等)上,我想去掉那些“有趣的符号”的可能性,只处理基本的文本和数字,包括丹麦字符æøå, 重音符号和符号,如-#'@()?=,.:;!“#&<>等。
我该怎么办?
是否有一些本机php函数来剥离unicode符号/字符,或者我必须为它找到/生成一个特定的regex函数?

sxpgvts3

sxpgvts31#

有用于检查编码的函数:http://php.net/manual/en/function.mb-check-encoding.php 但要去掉字符,我认为您需要使用regex:

function StripNonUTF($str){
  return preg_replace('/[^\pL\pM[:ascii:]]+/g', '', $str);
}

\pl匹配任何语言的任何类型的字母
\pm匹配一个要与另一个字符组合的字符(例如重音符号、元音变调、包围盒等)
[:ascii:]匹配ascii值为0到127的字符

相关问题