[英]php - strip a string of everything except ascii and emoji
我想清理一個字符串, 但也只保留ASCII字符,我想保留表情符號!
目前,我們有一種愚蠢的白名單方法:
preg_replace('/[^(\\x20-\\x7F,☠,♥)]*/','', $text);
有沒有辦法讓大量表情符號通過過濾器?
目前,我們的php配置未設置mbstring
值。 例如,我們沒有 mbstring.internal_encoding = UTF-8
。 不知道這是否有所作為。
首先, (
, ,
, )
在一個字符類中沒有特殊的含義,如果你使用量詞*
,你的模式將在字符串中的每個位置(與空匹配)成功。
如果要保留表情符號,則只需將其放入否定的字符類中。 顯然,與其將它們一一放置在字符類中,不如使用范圍:
/[^\x20-\x7F😀-🙀☠♥]+/u
您可以在此處選擇您感興趣的范圍: https : //en.wikipedia.org/wiki/Emoji
請注意,由於您正在處理Unicode字符,因此必須使用u修飾符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.