Я хотел бы отладить некоторый PHP-код, но, думаю, мне подойдет вывод журнала на экран или в файл.
Как мне распечатать журнал в PHP-коде?
Обычный print
/, printf
похоже, идет на вывод HTML, а не на консоль.
У меня есть сервер Apache, выполняющий код PHP.
printf
вопрос был бы получить это много upvotes ...Ответы:
Менее известный трюк заключается в том, что mod_php отображает stderr в журнал Apache. И для этого есть поток, поэтому он
file_put_contents('php://stderr', print_r($foo, TRUE))
будет$foo
записывать значение в журнал ошибок Apache.источник
var_export($foo, true)
вместоprint_r($foo, true)
ifprint_r
не дает вам нужную информацию о типе.может быть полезно
источник
Вы можете использовать error_log для отправки на ваш сервер файла журнала ошибок (или необязательного другого файла, если хотите)
источник
Если вы используете Linux:
или
а затем в консоли
Это будет постоянно показывать последнюю строку, помещенную в файл.
источник
Вам нужно изменить свое настроение. Вы пишете PHP, а не то, что вы привыкли писать. Отладка в PHP не выполняется в консольной среде.
В PHP есть 3 категории решений для отладки:
Научитесь использовать их вместо того, чтобы пытаться заставить PHP вести себя как любой другой язык, к которому вы привыкли.
источник
Вы отлаживаете на консоли? Существуют различные варианты отладки PHP. Самая распространенная функция, используемая для быстрой и грязной отладки, - это var_dump .
Об этом говорится и в стороне, хотя var_dump потрясающий, и многие люди делают все с его помощью, есть другие инструменты и методы, которые могут немного оживить его.
Вещи, которые могут помочь при отладке на веб-странице, оберните
<pre> </pre>
теги вокруг оператора дампа, чтобы обеспечить правильное форматирование массивов и объектов.То есть:
И, наконец, что не менее важно, убедитесь, что отладка вашей обработки ошибок настроена на отображение ошибок. Если вы не можете получить доступ к конфигурации сервера, чтобы сделать это, может потребоваться его добавление в верхней части скрипта.
Удачи!
источник
Если вы не хотите интегрировать фреймворк, такой как Zend , вы можете использовать метод trigger_error для входа в журнал ошибок php.
источник
Проще говоря, trigger_error:
но вы не можете помещать массивы или объекты, поэтому используйте
источник
Вы также можете записать в такой файл:
Убедитесь, что установлены правильные разрешения, чтобы php мог получить доступ и записать в файл (
775
).источник
Вы можете использовать модуль php curl для звонков на http://liveoutput.com/ . Это отлично работает в безопасной корпоративной среде, где существуют определенные ограничения в php.ini, которые ограничивают использование
file_put_contents
.источник
Это отличный инструмент для отладки и регистрации php: PHp Debugger & Logger
Он работает сразу после установки всего в 3 строчки кода. Он может отправлять сообщения на консоль js для отладки ajax и может заменить обработчик ошибок. Он также выводит информацию о таких переменных, как var_dump () и print_r (), но в более читаемом формате. Очень красивый инструмент!
источник
Я использовал многие из них, но поскольку мне обычно требуется отладка при разработке, и поскольку я разрабатываю на localhost, я последовал советам других и теперь пишу в консоль отладки JavaScript браузера (см. Http: //www.codeforest. net / debugging-php-in-browsers-javascript-console ).
Это означает, что я могу посмотреть веб-страницу, которую генерирует мой PHP, в моем браузере и нажать F12, чтобы быстро показать / скрыть любые следы отладки.
Поскольку я постоянно смотрю на инструменты разработчика для отладчика, верстки CSS и т. Д., Имеет смысл посмотреть там мой логон PHP.
Если кто-то решит нам этот код, я внес одно небольшое изменение. После
function debug($name, $var = null, $type = LOG) {
я добавил
$name = 'PHP: ' . $name;
Это связано с тем, что мой серверный PHP генерирует HTML, содержащий JavaScript, и я считаю полезным различать вывод PHP и JS.
(Примечание: в настоящее время я обновляю это, чтобы позволить мне включать и выключать различные типы вывода: из PHP, из JS и доступа к базе данных)
источник
Я использую cakephp, поэтому использую:
источник
Ты можешь использовать:
источник
Ты можешь использовать
или если вы хотите распечатать этот оператор в журнале, вы можете использовать
источник