如何安全地解码base64?

时间:2012-01-20 20:49:45

标签: php binary base64

我在一个大SQL中有一些base64编码的文章。

我需要解码这些文章并回应它们。

我的问题是它们似乎是二进制的,有点风险,我做了base64_decode()之后无法回应它们

如何将它们转换为安全文本?

编辑:似乎我不够清楚,

1)抱歉我的头衔,英语是我的第二语言,如果有人可以编辑,我不知道如何问它,我会很感激。

2)我不知道它是什么类型的二进制代码,我认为它与我在MYSQL DB中以LONGTEXT格式存储的事实有关。我找到的唯一答案是n2lbr(),但它已经是一些html所以我不希望一堆<br />弄乱我的东西。

我有尝试过的事情:

preg_replace('#\n\r#', ' ' ,$data);
preg_replace('#\n#', ' ' ,$data);
preg_replace('#\r#', ' ' ,$data);
str_replace('\n\r', ' ' ,$data);

2 个答案:

答案 0 :(得分:0)

解码后,我认为mb_detect_encoding()是一个很好的命令,可以看看它是否需要进行字符集转换(iconv或utf8_encode)。

http://se2.php.net/manual/en/function.mb-detect-encoding.php

如果可能,将mysql列转换为text或varchar,并在打开数据库连接时使用“set character set utf8”。

答案 1 :(得分:0)

解码后,您需要将它们输出到文件或使用正确的mime类型输出到浏览器。如果您不知道mime类型,请使用Fileinfo命令查找mime类型:

$content = base64_decode($yourdata);
$finfo = new finfo;
$mimeType = $finfo->buffer($content, FILEINFO_MIME);

然后,您可以使用mime类型根据文件数据将正确的标头发送到浏览器。