php中判断一个字符串是否为base64编码,通常的做法为,将这个字符串进行 base64_decode 解码,然后再进行编码,再对照原有的字符串,如果相等就是BASE64编码后的字符串,如果不等就不是。注意:以上只能判断百分之60左右的base64编码后的字符串 如果遇到字符串长度比较短或者纯字母以及纯数字的话.那么这个方法就不行了。长度为1的非base64编码字符串在base64解码后的内容是空,长度为2以上非base64编码的字符串解码后是显示乱码。
//判断是否为utf8编码
public 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字符串
* @param [type] $str [description]
* @return [type] [description]
*/
public function str_is_base64($str){
if ($this->is_utf8(base64_decode($str)) && base64_decode($str) != '') {
return true;
}
return false;
}
// 判断是否密码为base64
if($this->str_is_base64($password)){
$password = base64_decode($password);
}
原地址:http://180it.com/archives/1459/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报