1.判断是否含有emoji表情
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; }
2.如果是,使用base_encode($str)存入数据库
3.判断是否base编码过
function is_base64($str) { if(preg_match('/^[0-9]*$/',$str)||preg_match('/^[a-zA-Z]*$/',$str)){ return false; }else if(strlen($str) % 4){ return false; } else if(is_utf8(base64_decode($str)) && base64_decode($str) != ''){ return true; } return false; } function is_utf8($str){ $len = strlen($str); for($i = 0; $i < $len; $i++){ $c = ord($str[$i]); if($c > 128){ if(($c > 247)){ return false; }elseif($c > 239){ $bytes = 4; }elseif($c > 223){ $bytes = 3; }elseif ($c > 191){ $bytes = 2; }else{ return false; } if(($i + $bytes) > $len){ return false; } while($bytes > 1){ $i++; $b = ord($str[$i]); if($b < 128 || $b > 191){ return false; } $bytes--; } } } return true; }
如果是,使用base64_decode($str)取出;