首页后端开发JAVAphp判断字符串是否为base64编码

php判断字符串是否为base64编码

时间2023-04-25 02:09:02发布访客分类JAVA浏览1214
导读:这几天一直在做php中关于base64编码的逻辑,其中就有一项关于利用php判断一个字符串是否为base64编码。php中判断一个字符串是否为base64编码,通常的做法为,将这个字符串进行 base64_decode 解码,然后再进行编码...

这几天一直在做php中关于base64编码的逻辑,其中就有一项关于利用php判断一个字符串是否为base64编码。

php中判断一个字符串是否为base64编码,通常的做法为,将这个字符串进行 base64_decode 解码,然后再进行编码,再对照原有的字符串,如果相等就是BASE64编码后的字符串,如果不等就不是。当然还有其它的方法,下面来具体说一下。

php简单的判断字符串是否为base64编码

自定义函数:

复制

?php
/**
 * 判断字符串是不是base64编码
 * base64_decode:解码
 * base64_encode:再次编码
 */
function is_base64($str){
      
    return $str == base64_encode(base64_decode($str)) ? true : false;
  
}
    
?>
    

函数使用:

复制

?php
$str = '飞鸟慕鱼博客';
    
//对字符串进行base64编码
$b = base64_encode($str);
    
echo $b;
    
echo 'br/>
    ';

if(is_base64($b)){
    
    echo '是base64编码';

}
else{
    
    echo '不是base64编码';

}
    
?>

输出结果:

复制

6aOe6bif5oWV6bG85Y2a5a6i
是base64编码

注意:以上只能判断百分之60左右的base64编码后的字符串 如果遇到字符串长度比较短或者纯字母以及纯数字的话.那么这个方法就不行了。长度为1的非base64编码字符串在base64解码后的内容是空,长度为2以上非base64编码的字符串解码后是显示乱码。

php根据字符串是否utf8编码来判断,是否为 base64 编码

php自定义判断是否为UTF-8的编码的函数

复制

?php
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 编码的函数

复制

?php
/**
 * 判断是否用base64进行encode过
 * 需要使用 is_utf8 来判断是否为 utf-8的编码
 * @param $str
 * @return bool
 */
function str_is_base64($str){
    
   if (is_utf8(base64_decode($str)) &
    &
 base64_decode($str) != '') {
    
        return true;

    }
    
    return false;

}
    
?>
    

小提示:在网上看到有人在使用这个方法之前,需要先过滤掉纯数字或纯字母,个人感觉其实没有必要,纯数字或纯字母,都可以通过这个判断出来!当然你也可以自己过滤测试一下

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

php

若转载请注明出处: php判断字符串是否为base64编码
本文地址: https://pptw.com/jishu/7856.html
php array_rand()函数随机从数组中选择一个或多个元素 php qrcode 输出乱码怎么解决?

游客 回复需填写必要信息