我需要从字符串中删除表情符号,我们可以存储信息,但由于表情符号中使用的特殊字符,它会破坏我们的xml导出。我希望在将表情符号传送到数据库之前使用PHP来删除表情符号
。
以下是一个此类表情符号的示例:😊
我已尝试过此主题中描述的多种方法:PHP : writing a simple removeEmoji function
然而他们不起作用。有人可以建议一种剥夺所有这些的方法吗?
到目前为止,我所尝试的内容无法删除上述示例表情符号:
function removeEmoji($string) {
return preg_replace('/&#x(e[0-9a-f][0-9a-f][0-9a-f]|f[0-8][0-9a-f][0-9a-f])/i', '', $string);
}
我也尝试过:
public static function removeEmoji($text) {
$clean_text = "";
// Match Emoticons
$regexEmoticons = '/[\x{1F600}-\x{1F64F}]/u';
$clean_text = preg_replace($regexEmoticons, '', $text);
// Match Miscellaneous Symbols and Pictographs
$regexSymbols = '/[\x{1F300}-\x{1F5FF}]/u';
$clean_text = preg_replace($regexSymbols, '', $clean_text);
// Match Transport And Map Symbols
$regexTransport = '/[\x{1F680}-\x{1F6FF}]/u';
$clean_text = preg_replace($regexTransport, '', $clean_text);
// Match Miscellaneous Symbols
$regexMisc = '/[\x{2600}-\x{26FF}]/u';
$clean_text = preg_replace($regexMisc, '', $clean_text);
// Match Dingbats
$regexDingbats = '/[\x{2700}-\x{27BF}]/u';
$clean_text = preg_replace($regexDingbats, '', $clean_text);
return $clean_text;
}
并尝试过:
$text = preg_replace('/&#x(e[0-9a-f][0-9a-f][0-9a-f]|f[0-8][0-9a-f][0-9a-f])/i', '', $text);
这些都不起作用,我用来调用所有这些的脚本是:
$comments = remove_emoji($comments);