var_dump变量后浏览器崩溃

时间:2016-09-06 08:57:17

标签: php

当我拍摄照片的内容时,我会尝试将其转储:

$filename = '(900).jpg';
$im = file_get_contents($filename);
var_dump(serialize($im));

当图片低于1mb时,一切正常,但如果浏览器崩溃超过1mb,你能告诉我为什么浏览器出现问题或file_get_contents()功能有限吗?

1 个答案:

答案 0 :(得分:1)

file_get_contents的唯一限制可能是允许PHP使用的内存。默认值约为128 MB。

如果您想要将其称为“浏览器”问题。如您所见,向浏览器输出如此多的调试信息并不是一个好主意。此外,将二进制文件视为文本也没有任何好处。

如果要查明变量是否已设置,可以使用函数检查(二进制)字符串的大小,例如: mb_strlen()

更好的方法是这个

$filename = '(900).jpg';
$im = file_get_contents($filename);
// check if the file could be loaded
if ($im !== false) {
    // start your processing
}

但这并不会检查您加载到字符串中的文件类型。如果必须将文件存储到数据库中 - 这被认为是非常邪恶的 - 您可以将二进制字符串存储到BLOB类型行中,或者使用base64_encode()对二进制字符串进行编码并将其存储为文本类型。这两种解决方案也不推荐!

如果您需要将图像信息存储到数据库中,您应该考虑使用对文件的引用 - 例如文件路径。您的主要目标是确保数据库信息和文件系统信息始终保持同步。