在PHP中检测base64编码?

36

有没有办法在PHP中检测字符串是否已经进行了base64编码?

我们正在将一些存储从纯文本转换为base64,并且其中的一部分存储在需要更新的Cookie中。如果文本尚未编码,我想重置它们的Cookie,否则保持不变。

12个回答

0
通常,Base64编码的文本中不包含空格。
我使用了这个函数,对我来说效果很好。它会检测字符串中空格的数量是否小于总字符数的1/20。
例如:每20个字符至少有一个空格 --- (空格数 / 字符串长度) < 0.05
function normalizaBase64($data){
    $spaces = substr_count ( $data ," ");
    if (($spaces/strlen($data))<0.05)
    {
        return base64_decode($data);
    }
    return $data;
}

0

你最好的选择是:

$base64_test = mb_substr(trim($some_base64_data), 0, 76);
return (base64_decode($base64_test, true) === FALSE ? FALSE : TRUE);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接