2015-12-17 3 views
17

У меня есть массив с некоторыми строками, какКак увидеть полное содержание длинных строк с var_dump() в PHP

$array = array("string1","string2","string3"); 

Но эти строки очень длинные, с длиной 2000+ иногда. Поэтому, когда я

echo "<pre>"; 
var_dump($array); 
echo "</pre>"; 

Это показывает мне что-то вроде

string 'zzzzzzzzzzzzzzzzz '... (length = 994) 
string 'yyyyyyyyyyyyyyyyy '... (length = 1287) 
string 'xxxxxxxxxxxxxxxxx '... (length = 1718) 

Вместо полной строки. Как я могу увидеть весь контент моего массива? А для тех, кто спросит, он содержит HTML-теги, так вот почему я не пишу echo $array[string];

+0

Похоже, вы используете xdebug. Если да, пожалуйста, подтвердите, и я могу ответить на этот вопрос. –

+0

Как я могу узнать, использую ли я его? Я нахожусь в localhost с wamp, если это важно. – Carlos2W

+0

Добавьте 'phpinfo();' в скрипт и выполните поиск по запросу «xdebug». –

ответ

23

Вы используете XDebug, который перегружает значение по умолчанию var_dump(), чтобы предоставить вам более красивый и настраиваемый выход. По умолчанию он также ограничивает объем информации, отображаемой за один раз. Чтобы получить больше результатов, вы должны изменить некоторые настройки.

Добавить это в верхней части вашего скрипта:

ini_set("xdebug.var_display_max_children", -1); 
ini_set("xdebug.var_display_max_data", -1); 
ini_set("xdebug.var_display_max_depth", -1); 

От the docs:

xdebug.var_display_max_children

Тип: целое число, значение по умолчанию: 128

Управляет количеством дочерних элементов массива и свойствами объекта, когда отображаются переменные с помощью xdebug_var_dump(), xdebug.show_local_vars или через функции Traces.

Чтобы отключить любые ограничения, используйте значение -1 как значение.

Этот параметр не влияет на количество детей, отправляемых клиенту с помощью функции «Удаленная отладка».

xdebug.var_display_max_data

Тип: целое число, значение по умолчанию: 512

управления максимальную длину строки, которая отображается, когда переменные отображаются либо xdebug_var_dump(), или через xdebug.show_local_vars Функциональные следы.

Чтобы отключить любые ограничения, используйте значение -1 как значение.

Этот параметр не влияет на количество детей, отправляемых клиенту с помощью функции «Удаленная отладка».

xdebug.var_display_max_depth

Тип: целое число, значение по умолчанию: 3

Управляет много вложенных уровней элементов массива и свойство объекта, когда переменные отображаются либо xdebug_var_dump(), xdebug.show_local_vars или через функцию следы.

Максимальное значение, которое вы можете выбрать, - 1023. Вы также можете использовать -1 как значение для выбора этого максимального числа.

Этот параметр не влияет на количество детей, отправляемых клиенту с помощью функции «Удаленная отладка».

+0

Спасибо, я добавляю это наверху и удаляет ограничение! – Carlos2W

+1

можно также поместить в файл php.ini, используя те же самые имена настроек конфигурации, например. 'xdebug.var_display_max_depth = -1' работает, но рекомендуется только для локальных сайтов-разработчиков – ThisGuyHasTwoThumbs

+1

@ThisGuyHasTwoThumbs Хорошая точка. Тем не менее, xdebug не должен использоваться вообще в производстве; это убийца производительности. –

-1

Что-то, как это будет также отображать любые HTML-теги в значениях:

foreach($array as $key=>$value) { 
    echo($key.':<br /><pre>'.htmlspecialchars($value).'<pre><hr>'); 
} 
1

Иногда, используя var_dump, может быть очень утомительным при работе с длинными строками. Вместо вывода результата в браузере вы можете использовать терминал. Другим решением является вывод результата в текстовый файл с использованием file_put_contents или аналогичного. Затем откройте файл и проверьте результат.