Как я могу писать в консоль в PHP?

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

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

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

Или вы используете трюк из PHP Debug to console.

Сначала вам понадобится небольшая вспомогательная функция PHP

function debug_to_console($data) {
    $output = $data;
    if (is_array($output))
        $output = implode(',', $output);

    echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
}

Затем вы можете использовать ее следующим образом:

debug_to_console("Test");

Это создаст вывод, подобный этому:

Debug Objects: Test
Комментарии (13)
Решение

Firefox.

В Firefox вы можете использовать расширение под названием FirePHP, которое позволяет регистрировать и сбрасывать информацию из ваших PHP-приложений в консоль. Это аддон к замечательному расширению для веб-разработки Firebug.

Chrome

Однако если вы используете Chrome, есть инструмент отладки PHP под названием Chrome Logger или webug (у webug есть проблемы с порядком журналов).

В последнее время активно разрабатывается Clockwork, который расширяет Инструменты разработчика, добавляя новую панель для предоставления полезной информации об отладке и профилировании. Он обеспечивает поддержку Laravel 4 и Slim 2 из коробки, и поддержка может быть добавлена с помощью расширяемого API.

Использование Xdebug

Лучшим способом отладки вашего PHP будет Xdebug. Большинство браузеров предоставляют вспомогательные расширения, которые помогут вам передать необходимую строку cookie/запроса для инициализации процесса отладки.

Комментарии (9)

Если вы'вновь ищет простой подход, эхо в виде JSON:

<script>
    console.log(<?= json_encode($foo); ?>);
</script>
Комментарии (5)

По умолчанию весь вывод идет в stdout, который является HTTP-ответом или консолью, в зависимости от того, запущен ли ваш скрипт Apache или вручную из командной строки. Но вы можете использовать error_log для логирования, а различные потоки ввода/вывода могут быть записаны в fwrite.

Комментарии (1)

Попробуйте выполнить следующие действия. Она работает:

echo("<script>console.log('PHP: " . $data . "');</script>");
Комментарии (3)
echo 
"<div display='none'>
    <script type='text/javascript'>
        console.log('console log message');
    </script>
</div>";

Создает

<div>

с

display="none"

так что див не отображается, но

console.log()

функция создается в JavaScript. Так что вы получите сообщение в консоли.

Комментарии (5)

Как автор связан странице в популярный ответ, я хотел бы добавить мою последнюю версию этой простой вспомогательной функции. Это гораздо более прочной.

Я использую json_encode () чтобы проверить, если тип переменной не является необходимым, а также добавить в буфер, чтобы решить проблемы с фреймворками. Там нет сплошной возврат или чрезмерное использование заголовков()`.

/**
 * Simple helper to debug to the console
 *
 * @param $data object, array, string $data
 * @param $context string  Optional a description.
 *
 * @return string
 */
function debug_to_console($data, $context = 'Debug in Console') {

    // Buffering to solve problems frameworks, like header() in this and not a solid return.
    ob_start();

    $output  = 'console.info(\'' . $context . ':\');';
    $output .= 'console.log(' . json_encode($data) . ');';
    $output  = sprintf('<script>%s</script>', $output);

    echo $output;
}

Использование #

// $data is the example variable, object; here an array.
$data = [ 'foo' => 'bar' ];
debug_to_console($data);`

Скриншот результата

Также простой пример, как образ, понять его намного легче:

Комментарии (11)

Я думаю, что он может быть использован --

function jsLogs($data) {
    $html = "";
    $coll;

    if (is_array($data) || is_object($data)) {
        $coll = json_encode($data);
    } else {
        $coll = $data;
    }

    $html = "<script>console.log('PHP: ${coll}');</script>";

    echo($html);
    # exit();
}

# For String
jsLogs("testing string"); #PHP: testing string

# For Array
jsLogs(array("test1", "test2")); # PHP: ["test1","test2"]

# For Object
jsLogs(array("test1"=>array("subtest1", "subtest2"))); #PHP: {"test1":["subtest1","subtest2"]}
Комментарии (2)

Некоторые большие ответы, что добавить больше глубины; но мне нужно что-то попроще и больше похожа на консоль на JavaScript.команда log ().

Я использую PHP в большое "и сбор данных и превратятся в формате XML" в приложениях AJAX. Консоль для JavaScript.журнал не'т работу, в таком случае, он разбивает вывод в формате XML.

Отладчик xdebug и т. д. были подобные вопросы.

Мое решение в Windows:

  • Настройка `.текстовый файл, который легко получить и возможностью записи
  • Установить переменную в PHP функцию error_log в `.ini-файл для записи в этот файл
  • Открыть файл в Windows проводник и открыть предварительный просмотр для его
  • Используйте функцию error_log('образом: mytest');` команду php для отправки сообщений

Это решение является простым и отвечает моим потребностям большую часть времени. Стандартный PHP и панель предварительного просмотра автоматически обновляется каждый раз, когда PHP не пишет ему.

Комментарии (1)

Я нахожу это полезным:


function console($data, $priority, $debug)
{
    if ($priority 
Комментарии (7)
$variable = "Variable";
echo "<script>console.log('$variable');</script>";

PHP и взаимодействия с JavaScript.

Комментарии (1)
function phpconsole($label='var', $x) {
    ?>
    <script type="text/javascript">
        console.log('<?php echo ($label)?>');
        console.log('<?php echo json_encode($x)?>');
    </script>
    <?php
}
Комментарии (1)

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

function console_log( $data ) {
  $output  = "<script>console.log( 'PHP debugger: ";
  $output .= json_encode(print_r($data, true));
  $output .= "' );</script>";
  echo $output;
}
Комментарии (1)

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

функцию error_log("это заносится только в журнал PHP и")

Ссылка: функцию error_log

Комментарии (1)

Там тоже многие в Google Chrome расширение, консоль PHP, с библиотека PHP, что позволяет:

  • Видеть ошибки и исключения в консоли хрома JavaScript и всплывающие окна уведомлений.
  • Дамп любым типом переменной.
  • Выполнение PHP-кода удаленно.
  • Защита доступа паролем.
  • Групповых журналов по запросу.
  • Перейти к файл ошибка:строка` в текстовом редакторе.
  • Скопировать ошибка данных/отладки в буфер обмена (для тестеров).
Комментарии (1)

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

В Firefox инструменты разработчика даже есть встроенная поддержка протокола хром логгер]2.

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

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

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

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

Комментарии (2)

Я ищу способ отладки кода в WordPress плагин, который я разрабатывал и наткнулся на этот пост.

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


function debug_log($object=null, $label=null, $priority=1) {
    $priority = $priority
Комментарии (0)

Я отказался от всего вышеперечисленного в пользу отладчика & Лесопогрузчик. Я не могу похвалить его достаточно!

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

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

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

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

  • показать глобальные переменные ($ГЛОБАЛС, $_POST, где, переменная $_GET, $_COOKIE и т. д.)
  • показать версию PHP и загрузка расширений
    • заменить на PHP встроенный обработчик ошибок
  • запросы журнала SQL
  • мониторинг кода и SQL-запросов и время выполнения
  • проверить переменные для изменения
  • вызовы функций трассировки
  • анализ покрытия кода, чтобы проверить, какие строки сценария, где выполняется
  • сброса всех типов переменной
  • файл инспектор с кодом хайлайтер просмотреть исходный код
  • отправка сообщений в консоли JavaScript (только Chrome), для скриптов AJAX

Комментарии (4)

Для AJAX-вызовы или XML / JSON и ответы, где вы Don'т хотите возиться с телом, вам нужно отправить журналы через HTTP-заголовки, а затем добавлять их на консоль с веб-расширением. Это как FirePHP (больше не доступны) и QuantumPHP (форк ChromePHP) сделать это в Firefox.

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

Комментарии (1)

[С 2017 года, Firebug и FirePHP, следовательно, был отключен][1].

Я написала несколько небольших изменений для инструмента ChromePHP, чтобы позволяют осуществлять плавный переход от FirePHP для Firebug для отладки через консоль.

Эта статья объясняет в ясных простых шагов

Перенос из FirePHP для ChromePHP в 5 минут (не нарушая существующий код)]2

[1]: https://en.wikipedia.org/wiki/Firebug_(программного обеспечения)

Комментарии (0)