Как сделать вывод заголовков сервера более читабельным? - PullRequest
2 голосов
/ 09 апреля 2011

Учитывая следующий код php5, который выдает огромное количество трудно читаемый код:

<?=var_dump($_SERVER);?>
<?=print_r($GLOBALS); ?>

Вопрос: как сделать вывод более понятным для человека? например как, кроме каждого «предмета» на новой строке?

Ответы [ 7 ]

5 голосов
/ 09 апреля 2011

Вы можете просто обернуть вокруг него предварительный элемент:

<code><pre><?php var_dump($_SERVER); ?>
<?php print_r($GLOBALS); ?>

Также обратите внимание, что <?= требует, чтобы для short_open_tags было установлено значение true (чтоfalse в новых версиях php)

3 голосов
/ 09 апреля 2011

В вашей среде разработки вы должны установить расширение Xdebug .

Среди других полезных функций (например, отладчик!) , вы получите более приятные var_dump():

  • цвета
  • форматирование


Например, вот скриншот началавывод, который я получаю для var_dump($_SERVER);:

http://extern.pascal -martin.fr / so / so-5604152.png

2 голосов
/ 09 апреля 2011

Помимо трюка <pre>, вы можете попробовать использовать dbug

Делает вещи намного приятнее и понятнее: dBug

2 голосов
/ 09 апреля 2011

Как и все остальные, вы можете обернуть это в теги <pre>, чтобы сделать его читаемым. Обычно в моем коде всегда есть следующие 2 функции. Используется как вспомогательные функции, вдохновленные тортом.

<code>function pr() {
    $vars   = func_get_args();
    echo '<pre>';
    foreach ($vars as $var) {
        print_r($var);
    }
    echo '
'; } function prd () {// умирает после печати $ vars = func_get_args (); echo '
';
    foreach ($vars as $var) {
        print_r($var);
    }
    echo '
'; умереть(); }
2 голосов
/ 09 апреля 2011

Вы можете использовать тег <pre> для форматирования вывода

<code><pre><?=print_r($GLOBALS); ?>
1 голос
/ 09 апреля 2011
  1. Это не какие-либо "заголовки сервера", а обычные массивы.
  2. Чтобы вывести содержимое массива, программист обычно использует цикл , а затем форматирует вывод желаемым образом:

.

foreach($_SERVER as $key => $value){
  echo "<b>$key:</b> $value<br>\n";
}

Обратите внимание, что ваш вывод гигантский только потому, что вы печатаете содержимое переменной $ GLOBALS, которая для вас совершенно бесполезна.

1 голос
/ 09 апреля 2011

предыдущие ответы предлагают хорошее решение, но если вам нужен больший контроль над выходом, вы можете запустить цикл над массивами.

$ _ SERVER и $ _GLOBALS являются массивами, поэтому вы можете сделать

foreach($_SERVER as $key=>$value){
echo $key . ' is ' . $value . '<br />' . PHP_EOL;
}

Вы также можете добавить операторы if, чтобы игнорировать некоторые элементы в $ _SERVER / $ _ GLOBALS

...