#formatting #php
#форматирование #php
Вопрос:
Прямо сейчас PHP просто выводит что-то вроде этого на странице:
Фатальная ошибка: не удается повторно объявить CmsgetItemHierarchy() (ранее объявленный в /home/cartman/Development/cmsdev/engineer_1.0/Cms/Menu.php:62) в /home/cartman/Development/cmsdev/engine_1.0/Cms/Menu.php на строке 62 Стек вызовов: 0,0001 634424 1. {main}() /главная/картман/Разработка/cmsdev/public_normal/index.php:0 0,0037 757768 2. Bootstrap::run() /home/cartman/Development/cmsdev/public_normal/index.php:7 0,0037 757768 3. Cms Front->dispatch() /home/cartman/Development/cmsdev/data_production/bootstrap.php:94 0,0043 781512 4. frontendController->contactusAction()/home/cartman/Development/cmsdev/engineer_1.0/Cms/Front.php:367 0,0051 817152 5. plugins m3nu api->renderMenu($configName = ‘bottom’, $ActiveItem = ‘contactme’) /home/cartman/Development/cmsdev/data_production/контроллеры /frontendController.php:43 0,0052 825392 6. Cms Menu->generateMenu() /home/cartman/Development/cmsdev/public_normal/plugins/m3nu/api.php:29 0,0052 825392 7. Cms Menu->prepareseconfig() /home/cartman/Development/cmsdev/engineer_1.0/Cms/Menu.php:121
Есть ли способ сделать вывод более организованным, по крайней мере, распечатать трассировку стека в отдельных строках?
Ответ №1:
Вы также можете обновить php.ini, чтобы включить некоторое форматирование HTML.
html_errors = On
error_prepend_string = "<pre style='color: #333; font-face:monospace; font-size:8pt;'>"
error_append_string = "</pre>"
Или, если вы предпочитаете устанавливать их во время выполнения, включите следующее в начало вашего скрипта (ов)
ini_set("html_errors", "1");
ini_set("error_prepend_string", "<pre style='color: #333; font-face:monospace; font-size:8pt;'>");
ini_set("error_append_string ", "</pre>");
Ответ №2:
Похоже, это трассировка стека XDebug. Попробуйте установить trace_format в php.ini
:
xdebug.trace_format = 2 # HTML formatting
Комментарии:
1. Да. Я установил для него значение 2, но вывод все еще находится в одной строке.
2. О, мне пришлось также установить html_errors=On в php.ini, чтобы xdebug использовал хорошее оранжевое форматирование. Работает для меня.
Ответ №3:
Если вы просматриваете их из браузера, вы можете обернуть это в
<pre></pre>
теги, которые по существу будут представлять ваши символы новой строки как разрывы строк.
В противном случае, если вы просматриваете вне DOM, то есть в консоли или в программе просмотра исходного кода, вы обнаружите, что они уже отформатированы «красиво»
Комментарии:
1. Есть ли какая-то директива php.ini, которая позволяет мне переносить вывод erorr?
2. Вы можете просто варп <?php ?> теги <pre></pre> теги