2016-09-06 3 views
1

Когда я беру содержание картины я пытаюсь сбросить это так:сбоя браузера после var_dump переменных

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

Когда картина под 1mb все работает, но если это больше, чем крах 1mb браузера может вы скажите мне, почему это проблема с браузером или какое-то ограничение функции file_get_contents()?

+0

Вы используете XDEBUG? – RiggsFolly

+3

Зачем вам это делать в первую очередь? – nogad

+0

Простое эхо может быть более полезным – RiggsFolly

ответ

1

Единственным ограничением file_get_contents может быть память, которая разрешена для использования PHP. И значение по умолчанию составляет около 128 МБ.

Это проблема с браузером, если вы хотите это назвать. Вывод так много отладочной информации в браузер не является хорошей идеей, как вы можете видеть. Кроме того, нет никакой пользы при просмотре двоичного файла в виде текста.

Если вы хотите узнать, установлена ​​ли переменная, вы можете использовать функции для проверки размера (двоичной) строки, например. 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() и сохранить ее в текстовом виде. Оба этих решения также не рекомендуются!

Если вам нужно сохранить информацию об изображении в базе данных, вы должны подумать об использовании ссылок на файлы - например. путь к файлу. Ваша основная задача - обеспечить, чтобы информация о базе данных и информация о файловой системе всегда синхронизировались.

+0

Спасибо, я буду использовать его таким образом. –

Смежные вопросы