重要的人越来越少,剩下的越来越重要。拼你想要的,争你没有的。要想人前显贵,就得背后遭罪。最穷不过要饭,不死终会出头!
这几天一直在做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; } ?>
小提示:在网上看到有人在使用这个方法之前,需要先过滤掉纯数字或纯字母,个人感觉其实没有必要,纯数字或纯字母,都可以通过这个判断出来!当然你也可以自己过滤测试一下
以上就是php判断字符串是否为base64编码。其实我是想鼓起勇气告诉你,如果有一天你想结婚了,告诉我。我会毫不顾忌的跟你走,不在乎你说的什么奢求不奢求。哪怕你没有房,我们可以租,只要有你在我就觉得有安全感。没有车,我就上班挤公交。钱是可以挣的,而对的人,错过了,就再也没有了。而只要你开口,说你要娶我,我就铁了心的嫁。更多关于php判断字符串是否为base64编码请关注haodaima.com其它相关文章!