我的网站和数据库设置为utf-8和utf8mb4。在文本区域,当用户使用utf-8符号/表情符号时,这是非常好的。但在某些输入字段(姓名、地址等)上,我想去掉那些“有趣的符号”的可能性,只处理基本的文本和数字,包括丹麦字符æøå, 重音符号和符号,如-#'@()?=,.:;!“#&<>等。我该怎么办?是否有一些本机php函数来剥离unicode符号/字符,或者我必须为它找到/生成一个特定的regex函数?
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的字符
1条答案
按热度按时间sxpgvts31#
有用于检查编码的函数:http://php.net/manual/en/function.mb-check-encoding.php 但要去掉字符,我认为您需要使用regex:
\pl匹配任何语言的任何类型的字母
\pm匹配一个要与另一个字符组合的字符(例如重音符号、元音变调、包围盒等)
[:ascii:]匹配ascii值为0到127的字符