PHP中處理emoji表情
今天遇到評論中加入emoji表情導致整個字元存到資料庫中為空的情況,出現這種情況是因為mysql資料庫表用的utf-8字符集也就是3位元組,但emoji表情是4位元組,導致無法insert.
下面寫下怎麼存到資料庫和怎麼清除掉emoji.
PHP中將emoji表情儲存到mysql資料庫
修改資料庫字符集
將對應的表字符集改為utf8mb4,排序規則改為utf8mb4_unicode_ci
將對應的欄位的字符集改為utf8mb4,排序規則改為utf8mb4_unicode_ci
-
修改連結方式
在資料庫的配置檔案中將charset改為utf8mb4,將collation改為utf8mb4_unicode_ci。
'mysql' => [
'host' => env('DB_HOST_SLAVE_ONE'),
'username' => env('DB_USERNAME_SLAVE_ONE'),
'password' => env('DB_PASSWORD_SLAVE_ONE'),
'driver' => 'mysql',
'database' => env('DB_DATABASE'),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => false,],
記得重啟mysql,嗯,一定要重啟。
PHP將emoji從字串中清除
步驟:
將字元中原有
?
替換掉將字串從utf-8轉為iso-8859-1
再還原回utf-8(mb_convert_encoding函式會將無效的字元轉為
?
)將這些無效的
?
用''
替換掉將最初的
?
還原回來
程式碼如下:
function removeEmojis( $string )
{
$string = str_replace( "?", "{%}", $string );
$string = mb_convert_encoding( $string, "ISO-8859-1", "UTF-8" );
$string = mb_convert_encoding( $string, "UTF-8", "ISO-8859-1" );
$string = str_replace( array( "?", "? ", " ?" ), array(""), $string );
$string = str_replace( "{%}", "?", $string );
return trim( $string );
}
驗證字串中是否含有emoji表情
還有些情況是我們直接驗證,如果含有emoji表情則報格式錯誤,程式碼如下。
public function findEmoji($source){
$mat = [];
preg_match_all('/./u', $source,$mat);
foreach ($mat[0] as $v){
if(strlen($v) > 3){return true;}
}
return false;
}
相關文章
- 前端如何處理emoji表情前端
- Java處理emojiJava
- Laravel 專案實戰中如何快速整合 Emoji 表情包?Emoji 表情包太豐富了Laravel
- mysql 儲存emoji表情MySql
- MySQL儲存 emoji 表情MySql
- 如何在Java中輕鬆處理Emoji Unicode - UdayakumarJavaUnicode
- Android Jetpack - Emoji表情符號初探AndroidJetpack符號
- 網站如何開啟Emoji 表情支援網站
- bili-emoji自定義表情包設定
- emoji等表情符號存mysql的方法符號MySql
- 2020年全球最受歡迎emoji表情排名
- MYSQL資料庫與Emoji表情的故事MySql資料庫
- php程式對微信你暱稱的表情處理匯出excel檔案PHPExcel
- FCPX外掛:36個有趣可愛卡通emoji表情貼紙動畫Square Emoji動畫
- 原生js 實現輸入框emoji表情釋出JS
- js判斷字串是否含有特殊字元和emoji表情JS字串字元
- 【BUG記錄】MySQL插入Emoji表情報錯"Incorrect string value"MySql
- MySQL 資料庫儲存 Emoji 表情及特殊符號MySql資料庫符號
- PHP 錯誤處理PHP
- php錯誤處理PHP
- ctags 處理 PHP traitPHPAI
- PHP 時間處理PHP
- win10自帶字元表情如何使用_win10 emoji表情符號的使用教程Win10字元符號
- MySQL 04-EMOJI 表情與 UTF8MB4 的故事MySql
- 相見恨晚的 MacBook 使用技巧「1」emoji表情賣萌Mac
- Mysql伺服器無法存emoji表情的解決方案MySql伺服器
- [工具]PHP 中的日期時間處理利器 – CarbonPHP
- PHP 核心 - 異常處理PHP
- php表單處理-143PHP
- PHP 陣列 & 字串處理PHP陣列字串
- Unicode Consortium:2021年度最常用Emoji “笑哭”成年度表情Unicode
- PHP 核心特性 - 錯誤處理PHP
- PHP (超文字前處理器)PHP
- PHP 多程式處理任務PHP
- 關於php rsa加密處理PHP加密
- PHP 多工協程處理PHP
- php 處理 浮點數 精度運算 數字處理等PHP
- PHP安裝後錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP