Répertoire
Les expressions emoji codées en utf-8 ou certains caractères spéciaux occupent 4 octets. Les caractères chinois courants codés en UTF-8 occupent 3 octets.
Déterminer si la chaîne contient des expressions emoji
Trois fonctions PHP intégrées :
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] ) // 返回具有 encoding 编码的字符串 str 包含的字符数。 多字节的字符被计为 1。 // 如果给定的 encoding 无效则返回 FALSE。
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) // 根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1。 // mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分。
int strlen ( string $string ) // 返回给定的字符串 string 的长度。
La fonction est la suivante :
function haveEmojiChar($str) { $mbLen = mb_strlen($str); $strArr = []; for ($i = 0; $i < $mbLen; $i++) { $strArr[] = mb_substr($str, $i, 1, 'utf-8'); if (strlen($strArr[$i]) >= 4) { return true; } } return false; }
Supprimer les emoji du string La fonction émoticône
est la suivante :
function removeEmojiChar($str) { $mbLen = mb_strlen($str); $strArr = []; for ($i = 0; $i < $mbLen; $i++) { $mbSubstr = mb_substr($str, $i, 1, 'utf-8'); if (strlen($mbSubstr) >= 4) { continue; } $strArr[] = $mbSubstr; } return implode('', $strArr); }
Stockage des chaînes contenant des expressions emoji dans MySQL
MySQL utilise des caractères utf8mb4. ensemble.
2. PHP base64 encode la chaîne, puis décode la chaîne lors de sa récupération dans la base de données.
3. Supprimez directement les expressions emoji de la chaîne (cette méthode est simple et grossière)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!