2016-03-12 9 views

ответ

23

Это должно сделать трюк,

function remove_emoji($text){ 
     return preg_replace('/([0-9|#][\x{20E3}])|[\x{00ae}|\x{00a9}|\x{203C}|\x{2047}|\x{2048}|\x{2049}|\x{3030}|\x{303D}|\x{2139}|\x{2122}|\x{3297}|\x{3299}][\x{FE00}-\x{FEFF}]?|[\x{2190}-\x{21FF}][\x{FE00}-\x{FEFF}]?|[\x{2300}-\x{23FF}][\x{FE00}-\x{FEFF}]?|[\x{2460}-\x{24FF}][\x{FE00}-\x{FEFF}]?|[\x{25A0}-\x{25FF}][\x{FE00}-\x{FEFF}]?|[\x{2600}-\x{27BF}][\x{FE00}-\x{FEFF}]?|[\x{2900}-\x{297F}][\x{FE00}-\x{FEFF}]?|[\x{2B00}-\x{2BF0}][\x{FE00}-\x{FEFF}]?|[\x{1F000}-\x{1F6FF}][\x{FE00}-\x{FEFF}]?/u', '', $text); 
} 

echo remove_emoji('Lorem ipsum dolor sit amet, consectetur adipiscing elit. '); 
//Output: Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
+1

Это не находит этот смайлик: – rassoh

+1

Этот ответ, кажется, копируется из [Adam Меррифилда] (https://stackoverflow.com/a/ 20208095/1486177) – ASDi

+1

Это выражение выражений не соответствует всем эмози. Например, – chenxinlong

5

Вы можете использовать preg_replace, чтобы удалить не ASCII символы из строки. Например:

echo preg_replace('/[[:^print:]]/', '', "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "); 

вернется:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
+4

Что относительно символов не-ascii, не-emoji? –

+2

Это удаляет символы без ascii, такие как:. Но этого не должно быть. –

+0

@RajeshAshokKumar верен, если вы хотите сохранить не-ASCII, не-emoji персонажи, у Тома есть ответ, который вы ищете. –

Смежные вопросы