如何检查字符串在 PHP 中是否 base64 有效

2022-08-30 08:25:47

我有一个字符串,并希望使用PHP测试它是否是有效的base64编码。


答案 1

我意识到这是一个古老的话题,但使用严格的参数并不一定有帮助。

对字符串(如“我不是 base 64 编码”)运行base64_decode不会返回 false。

但是,如果您尝试使用 strict 解码字符串并使用base64_encode对其进行重新编码,则可以将结果与原始数据进行比较,以确定它是否为有效的 bas64 编码值:

if ( base64_encode(base64_decode($data, true)) === $data){
    echo '$data is valid';
} else {
    echo '$data is NOT valid';
}

答案 2

您可以使用此功能:

 function is_base64($s)
{
      return (bool) preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $s);
}

推荐