Php var_转储变量后浏览器崩溃

Php var_转储变量后浏览器崩溃,php,Php,当我拍摄一张照片的内容时,我会尝试这样转储它: $filename = '(900).jpg'; $im = file_get_contents($filename); var_dump(serialize($im)); 当图片小于1mb时,一切正常,但是如果超过1mb,浏览器崩溃,你能告诉我为什么是浏览器问题或文件获取内容()函数的某些限制吗?文件获取内容的唯一限制可能是PHP允许使用的内存。默认值约为128MB 这是一个浏览器的“问题”,如果你想这么说的话。如您所见,向浏览器输出如此多的调

当我拍摄一张照片的内容时,我会尝试这样转储它:

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

当图片小于1mb时,一切正常,但是如果超过1mb,浏览器崩溃,你能告诉我为什么是浏览器问题或
文件获取内容()函数的某些限制吗?

文件获取内容的唯一限制可能是PHP允许使用的内存。默认值约为128MB

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

如果要确定变量是否已设置,可以使用函数检查(二进制)字符串的大小,例如
mb\u strlen()

更好的办法是这样

$filename = '(900).jpg';
$im = file_get_contents($filename);
// check if the file could be loaded
if ($im !== false) {
    // start your processing
}
但这不会检查您已加载到字符串中的文件类型。如果必须将文件存储到数据库中(这被认为是非常有害的),则可以将二进制字符串存储到BLOB类型的行中,或者使用
base64\u encode()
对二进制字符串进行编码并将其存储到文本类型中。这两种解决方案也不推荐


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

你在使用XDEBUG吗?为什么你首先要这么做?一个简单的回音可能更有用我正在尝试将图像信息保存到数据库中,但我没有收到任何大于1mb的图像文件内容,因为浏览器崩溃,我无法保存。Var_dump与将文件保存到数据库无关。另外,通常不建议保存文件以查看数据库谢谢,我会这样使用它。