Мне нужно убрать смайлики из строки, мы можем хранить информацию, но это нарушает наш экспорт XML из-за специальных символов, используемых в смайликах. Я хотел бы использовать PHP, чтобы раздеть эмодзи до того, как он попадет в базу данных.
,
Вот образец одного из таких смайликов: 😊
Я пробовал несколько методов, описанных в этой теме: PHP: написание простой функции removeEmoji
Однако они не работают. Может кто-нибудь предложить способ избавиться от всего этого?
То, что я пробовал до сих пор, не работает, чтобы лишить смоделированного выше примера:
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);
Задача ещё не решена.
Других решений пока нет …