Как я могу написать на консоль в PHP? - PullRequest
274 голосов
/ 01 декабря 2010

Можно ли написать строку или войти в консоль?

Что я имею в виду

Так же, как в jsp, если мы напечатаем что-то вроде system.out.println("some"), оно будет там на консоли, а не встр.

Ответы [ 23 ]

10 голосов
/ 04 августа 2017
$variable = "Variable";
echo "<script>console.log('$variable');</script>";

Взаимодействие PHP и Javascript.

8 голосов
/ 07 апреля 2016

Коротко и просто, для массивов, строк или также объектов.

function console_log( $data ) {
  $output  = "<script>console.log( 'PHP debugger: ";
  $output .= json_encode(print_r($data, true));
  $output .= "' );</script>";
  echo $output;
}
7 голосов
/ 12 марта 2014
function phpconsole($label='var',$x){
 ?>
 <script type="text/javascript">
    console.log('<?php echo ($label)?>');
    console.log('<?php echo json_encode($x)?>');
    </script>
 <?php
}
6 голосов
/ 03 ноября 2016

Если вы хотите записать в файл журнала PHP, а не консоль JavaScript, вы можете использовать это:

error_log ( "This is logged only to the PHP log" )

Ссылка: http://php.net/manual/en/function.error-log.php

5 голосов
/ 09 декабря 2013

Существует также большое расширение Google Chrome PHP Console с php библиотекой , которое позволяет:

  • Просматривать ошибки и исключения в консоли Chrome JavaScript и ввсплывающие уведомления.
  • Дамп переменной любого типа.
  • Удаленное выполнение кода PHP.
  • Защита доступа с помощью пароля.
  • Групповые журналы консоли по запросу.
  • Перейти к файлу ошибок: строка в текстовом редакторе.
  • Копировать данные ошибок / отладки в буфер обмена (для тестеров).
5 голосов
/ 23 ноября 2016

Для Chrome существует расширение под названием Chrome Logger , позволяющее регистрировать сообщения PHP.

В Firefox DevTools даже встроена поддержка для протокола Chrome Logger .

Чтобы включить ведение журнала, вам просто нужно сохранить файл 'ChromePhp.php' в вашем проекте.Тогда его можно использовать так:

include 'ChromePhp.php';
ChromePhp::log('Hello console!');
ChromePhp::log($_SERVER);
ChromePhp::warn('something went wrong!');

Пример взят со страницы GitHub .

Выходные данные могут выглядеть следующим образом:

Server log within Firefox DevTools

3 голосов
/ 05 июля 2017

Отличный пост, спасибо, я искал способ отладки кода в плагине Wordpress, который я разрабатывал, и наткнулся на этот пост.

Я взял фрагменты кода, которые наиболее применимы ко мне из приведенных выше ответов, и объединил их в функцию, которую я могу использовать для отладки Wordpress. Функция:

function debug_log( $object=null, $label=null, $priority=1 ){
    $priority = $priority<1? 1: $priority;
    $message = json_encode($object, JSON_PRETTY_PRINT);
    $label = "Debug" . ($label ? " ($label): " : ': ');
    echo "<script>console.log('".str_repeat("-", $priority-1).$label."', ".$message.");</script>";
}

Использование выглядит следующим образом:

$txt = 'This is a test string';
$sample_array = array('cat', 'dog', 'pig', 'ant', 'fly');
debug_log( $txt,'',7 );
debug_log( $sample_array );

Я надеюсь, что кто-то найдет эту функцию полезной.

Если эта функция используется при разработке Wordpress, ее следует поместить в файл functions.php дочерней темы и затем вызывать в любом месте кода.

3 голосов
/ 13 апреля 2014

Я отказался от всего вышеперечисленного в пользу http://phptoolcase.com/guides/ptc-debug-guide.html Я не могу похвалить его достаточно!

Просто нажмите на одну из вкладок в правом верхнем углу или нажмите "здесь", чтобыразвернуть / скрыть.

Обратите внимание на различные «категории».Вы можете щелкнуть любой массив, чтобы развернуть / свернуть его.

Fromn веб-страницы

"Основные характеристики:

Show globals vars ($GLOBALS, $_POST, $_GET, $_COOKIE ...)
Show php version and loaded extensions
Replace php built in error handler
Log sql queries
Monitor code and sql queries execution time
Inspect variables for changes
Function calls tracing
Code coverage analysis to check which lines of script where executed
Dump of all types of variable
File inspector with code highlighter to view source code
Send messages to js console(Chrome only), for ajax scripts

" enter image description here

2 голосов
/ 23 ноября 2017

Для вызовов Ajax или ответов xml / json, когда вы не хотите связываться с телом, вам нужно отправлять журналы через заголовки http, а затем добавлять их в консоль с веб-расширением. Вот как FirePHP и QuantumPHP (развилка ChromePHP) делают это в Firefox.

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

2 голосов
/ 20 июля 2017

Начиная с 2017 года, firebug и, следовательно, firephp отключены.

Я написал несколько небольших модификаций для инструмента chromephp, чтобы обеспечить плавный переход от firephp к firebug для отладки через консоль.

Эта статья объясняет простым и понятным образом

https://medium.com/@kudehinbuoluwaponle/migrate-from-firephp-to-chromephp-in-5-minutes-without-breaking-existing-code-e4afd1b28c5c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...