簡體   English   中英

php-去除所有字符串,除了ASCII和表情符號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM