字符串是否进行了base64编码?

7

如何判断字符串是否是使用base64_encode()函数编码过的数据?

有可能吗?


1
如果完全不需要这样的检测,那将会更好。许多有经验的程序员可以不用它,我相信你也可以。 - Your Common Sense
1
请参见https://dev59.com/unRB5IYBdhLWcg3w6LN2。 - Gumbo
@Gumbo:我没有添加[php5]标签——我的编辑提交时间比你的长。我现在已经将其删除。 - BoltClock
2个回答

18

尝试针对Base64字符集严格解码。第二个参数允许您强制执行此严格检查;如果省略它,则解码函数会在解码之前仅剥离非法字符:

if (base64_decode($str, true) === false)
{
    echo 'Not a Base64-encoded string';
}

1

试试这个:

if(base64_encode(base64_decode($img, true)) === $img)
   echo 'is a Base64-encoded string' ;

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