Я исправляю некоторые PHP-скрипты, и мне не хватает красивого принтера Ruby. т.е.
require 'pp'
arr = {:one => 1}
pp arr
выведет {: one => 1}. Это работает даже с довольно сложными объектами и значительно упрощает поиск неизвестных сценариев. Есть ли способ дублировать эту функциональность в PHP?
php
pretty-print
Аарон Ли
источник
источник
print_r()
автоматически выводит и ничего не возвращает (если не указан второй параметрtrue
), поэтому вы не можете объединиться с другой строкой. Вместо этого используйте следующее:function pr($var) { print '<pre>'; print_r($var); print '</pre>'; }
Вот что я использую для печати своих массивов:
Магия приходит с
pre
биркой.источник
var_dump
потому, чтоvar_dump
обрезает результат, если это большой массив или большая строка ...print_r
:$formatted = print_r($array, true); print "<pre>" . htmlspecialchars($formatted, ENT_QUOTES, 'UTF-8', true) . "</pre>";
Для простоты print_r () и var_dump () не могут быть лучше. Если вы хотите что-то более интересное или имеете дело с большими списками и / или глубоко вложенными данными, Krumo значительно упростит вашу жизнь - он предоставляет вам красиво отформатированный сворачивающийся / расширяющийся дисплей.
источник
Лучшее, что я нашел, это следующее:
А если хотите поподробнее:
Добавление
<pre>
тега HTML в среду веб-разработки будет\n
правильно учитывать новые строки функции печати, без необходимости добавления некоторого HTML<br>
источник
Для PHP вы можете легко воспользоваться преимуществами HTML и некоторого простого рекурсивного кода, чтобы создать красивое представление вложенных массивов и объектов.
Это напечатает массив как список вложенных списков HTML. HTML и ваш браузер позаботятся об отступах и сделают его разборчивым.
источник
Как насчет print_r?
http://www.php.net/print_r
источник
Не забудьте установить
html_errors = on
в php.ini, чтобы получить красивую печать var_dump () в сочетании с xdebug.источник
Лучший способ сделать это
Пример:
Результат:
Массив
(
[foo] => 999
[bar] => 888
[poo] => Array
(
[x] => 111
[y] => 222
[z] => 333
)
)
Узнайте больше о print_r .
О втором параметре print_r "true" из документации:
источник
Это небольшая функция, которую я использую постоянно, она удобна, если вы отлаживаете массивы. Параметр title дает вам некоторую отладочную информацию о том, какой массив вы печатаете. он также проверяет, предоставили ли вы ему действительный массив, и сообщает, если вы этого не сделали.
Основное использование:
Полученные результаты:
источник
отправить в системный журнал или журнал событий для Windows
источник
Если вы занимаетесь дополнительной отладкой, вам понадобится Xdebug . По умолчанию он заменяет
var_dump()
свою собственную версию, которая отображает гораздо больше информации, чем по умолчанию PHPvar_dump()
.Также есть Zend_Debug .
источник
Я не видел, чтобы кто-то упоминал о том, что в вашей команде print_r используется «истинная запятая», а затем вы МОЖЕТЕ использовать ее встраивая с html, не прибегая ко всем обручам или предоставленным многоплановым решениям.
источник
htmlspecialchars()
этоprint_r()
для защиты от потенциально сохраненных угроз XSS.однострочник, который даст вам приблизительный эквивалент «просмотра источника» для просмотра содержимого массива:
предполагает php 4.3.0+:
echo nl2br(str_replace(' ', ' ', print_r($_SERVER, true)));
источник
Эта функция работает очень хорошо, если вы установили
header('Content-type: text/plain');
перед выводом возвращаемой строкиhttp://www.php.net/manual/en/function.json-encode.php#80339
источник
Если вам нужно более красивое представление любой переменной PHP (чем просто текст), я предлагаю вам попробовать nice_r () ; он распечатывает значения и соответствующую полезную информацию (например, свойства и методы для объектов). Отказ от ответственности: я написал это сам.
источник
Красивый цветной вывод:
echo svar_dump (array ("a", "b" => "2", "c" => array ("d", "e" => array ("f", "g"))));
будет выглядеть так:
источник:
источник
Поскольку я нашел это через Google, ища, как отформатировать json, чтобы сделать его более читаемым для устранения неполадок.
источник
Если ваш сервер возражает против изменения заголовков (на простой текст) после того, как некоторые из них были отправлены, или если вы не хотите изменять свой код, просто "просмотрите исходный код" в своем браузере. ваш текстовый редактор (даже блокнот) обработает новые строки лучше, чем ваш браузер, и превратят беспорядок в беспорядок:
Массив ([root] => 1 [sub1] => Array () [sub2] => Array () [sub3] => Array () [sub4] => Array () ...
в представление с правильными вкладками:
источник
Если вы хотите использовать результат в других функциях, вы можете получить действительное выражение PHP в виде строки, используя var_export :
Для многих вещей, которые люди делают в своих вопросах, я надеюсь, что они выделили функцию и не копируют, вставляя лишнее ведение журнала.
var_export
обеспечивает аналогичный результатvar_dump
в этих ситуациях.источник
Вот версия pp, которая работает как с объектами, так и с массивами (я также убрал запятые):
источник
Вот еще один простой дамп без накладных расходов на print_r:
источник
Я думаю, что лучшим решением для красивой печати json на php является изменение заголовка:
(если вы сделаете text / json, многие браузеры предложат загрузку ... facebook делает text / javascript для своего протокола графа, поэтому это не должно быть так уж плохо)
источник
FirePHP - это плагин для Firefox, который имеет довольно удобную функцию ведения журнала.
источник
Или используйте внешние библиотеки, такие как REF: https://github.com/digitalnature/php-ref
источник
Расширяя ответ @techhen, добавил несколько очень незначительных настроек для отображения.
Отформатирует любой многомерный массив так:
источник
Вот что я обычно использую:
источник
Я сделал эту функцию, чтобы распечатать массив для отладки:
Надеюсь, это поможет, Цюка С.
источник
Как насчет отдельной автономной функции с именем debug из https://github.com/hazardland/debug.php .
Типичный вывод debug () html выглядит так:
Но вы можете выводить данные в виде обычного текста с той же функцией (с 4-мя вкладками с отступом), как это (и даже при необходимости регистрировать их в файле):
источник
В PHP 5.4 вы можете использовать JSON_PRETTY_PRINT, если используете функцию json_encode.
http://php.net/manual/en/function.json-encode.php
источник
Я собрал несколько из этих опций в небольшую вспомогательную функцию на
http://github.com/perchten/neat_html/
Вы можете печатать в HTML с аккуратным выводом, а также изменять строку, автоматически печатать или возвращать и т. Д.
Он обрабатывает файлы, объекты, массивы, значения NULL и false и тому подобное.
Также есть несколько глобально доступных (но хорошо определенных) помощников для использования настроек более похожим на среду способом.
Плюс динамические, основанные на массивах или строковые необязательные аргументы.
И я продолжаю добавлять к этому. Так что поддерживается: D
источник