如何检查字符串在 PHP 中是否 base64 有效
2022-08-30 08:25:47
我有一个字符串,并希望使用PHP测试它是否是有效的base64编码。
我有一个字符串,并希望使用PHP测试它是否是有效的base64编码。
我意识到这是一个古老的话题,但使用严格的参数并不一定有帮助。
对字符串(如“我不是 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';
}
您可以使用此功能:
function is_base64($s)
{
return (bool) preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $s);
}