在输入中过滤表情符号

Filtering emojis in input

我目前有一个允许用户将评论插入 MySQL 数据库的表单。

在将字符串插入 MySQL 之前,是否有方法在 PHP 中 过滤表情符号条目

我可以使用preg_replace()还是有更好的功能可以使用?

这个表情符号:


插入MySQL后转换成这样:

ðŸŽ

示例:

输入:This is a present

输出:This is a present


HTML 形式:

<input name="remarks" type="text" placeholder="Optional"/>

PHP代码:

$remarks = $_POST['remarks'];

$remarks = preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $remarks);

(此模式无效)

不确定这是否是您想要的,但我会试一试。

preg_match_all("/(\W)+/", "This is a present ", $output_array);

输出:

preg_match_all("/(\w)+/", "This is a present ", $output_array);

输出:

array(2
      0 =>  array(4
          0 =>  This
          1 =>  is
          2 =>  a
          3 =>  present
      )

所以基本上匹配两个不同正则表达式中的单词和非单词。