Подтвердить что ты не робот

Ярлык для эха "<pre class="prettyprint-override">";print_r($myarray);echo "</pre>";

Есть ли ярлык для

echo "<pre>";
   print_r($myarray);
echo "</pre>";

Это очень неприятно печатать их только для получения читаемого формата массива.

4b9b3361

Ответ 1

Это самое короткое:

echo '<pre>',print_r($arr,1),'</pre>';

Закрывающий тег также можно опустить.

Ответ 2

Нет, вам просто нужно создать собственную функцию:

function printr($data) {
   echo "<pre>";
      print_r($data);
   echo "</pre>";
}

Очевидно, в 2018 году люди все еще возвращаются к этому вопросу. Выше не будет моим текущим ответом. Я бы сказал: научите своего редактора делать это за вас. У меня есть целая куча отладочных ярлыков, но мой самый используемый - vardd, который расширяется до: var_dump(__FILE__ . ':' . __LINE__, $VAR$);die();

Вы можете настроить это в PHPStorm как живой шаблон.

Ответ 3

Вы можете установить второй параметр print_r на true, чтобы получить возвращаемый результат, а не печатать напрямую:

$output = print_r($myarray, true);

Вы можете использовать это, чтобы поместить все в один echo (не забывайте htmlspecialchars, если вы хотите распечатать его в HTML):

echo "<pre>", htmlspecialchars(print_r($myarray, true)), "</pre>";

Если вы поместите это в пользовательскую функцию, это будет так же просто, как использовать print_r:

function printr($a) {
    echo "<pre>", htmlspecialchars(print_r($a, true)), "</pre>";
}

Ответ 4

echo '<pre>' . print_r( $myarray, true ) . '</pre>';

Из PHP.net print_r() docs:

Если для параметра [second] установлено значение TRUE, print_r() вернет информацию, а не распечатает ее.

Ответ 5

Вероятно, не полезно, но если массив - это единственное, что вы будете показывать, вы всегда можете установить

header('Content-type: text/plain');

Ответ 6

научите своего редактора делать это -

после записи вкладки "pr_" я получаю ровно


print("<pre>");
print_r($);
print("</pre>");

с курсором сразу после $

Я сделал это на textmate, добавив этот фрагмент:


print("<pre>");
print_r(\$${1:});
print("</pre>");

Ответ 7

Если вы используете XDebug, просто используйте

var_dump($variable);

Это приведет к выгрузке переменной, как print_r, но красиво отформатирован и в <pre>.

(Если вы не используете XDebug, тогда var_dump будет так плохо сформирован как print_r без <pre>.)

Ответ 8

echo "<pre/>"; print_r($array);

Ответ 9

Как старый, так и принятый, я просто оставлю это здесь:

function dump(){
    echo (php_sapi_name() !== 'cli') ? '<pre>' : '';
    foreach(func_get_args() as $arg){
        echo preg_replace('#\n{2,}#', "\n", print_r($arg, true));
    }
    echo (php_sapi_name() !== 'cli') ? '</pre>' : '';
}

Принимает произвольное количество аргументов и обертывает каждый в <pre> для запросов CGI. В запросах CLI он пропускает создание тега <pre> для чистого вывода.

dump(array('foo'), array('bar', 'zip'));
/*
CGI request                          CLI request

<pre>                                Array
Array                                (
(                                        [0] => foo
    [0] => foo                       )
)                                    Array
</pre>                               (
<pre>                                    [0] => bar
Array                                    [1] => zip
(                                    )
    [0] => bar
    [0] => zip
)
</pre>

Ответ 10

Я просто добавляю функцию pr() в глобальную область моего проекта. Например, вы можете определить следующую функцию для global.inc(если есть), которая будет включена в ваш index.php вашего сайта. Или вы можете напрямую определить эту функцию в верхней части index.php корневого каталога.

   function pr($obj)
   {
      echo "<pre>";
      print_r ($obj);
      echo "</pre>";
   }

Ответ 11

Просто напишите

print_r($myarray);//будет отображаться содержимое массива $myarray

exit();//он не будет выполнять дальнейшие коды после отображения вашего массива

Ответ 12

Возможно, вы можете создать метод/статический класс Method, который делает именно это. Я использую Kohana, у которого есть хорошая функция:

Kohana::Debug

Это сделает то, что вы хотите. Это уменьшает его до одной строки. Простая функция будет выглядеть как

function debug($input) {
    echo "<pre>";
    print_r($input);
    echo "</pre>";
}

Ответ 13

function printr($data)
{
   echo "<pre>";
      print_r($data);
   echo "</pre>";
}

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

include('functions.php');

printr($data);

Ответ 14

Я бы пошел на закрытие тега php, а затем вывел <pre></pre> как html, поэтому PHP не должен обрабатывать его, прежде чем повторять его:

?>

<pre><?=print_r($arr,1)?></pre>

<?php

Это также должно быть быстрее (не важно для этой короткой части) в целом. Использование может использоваться в качестве короткого кода для кода PHP.

Ответ 15

<?php
$people = array(
    "maurice"=> array("name"=>"Andrew",
                      "age"=>40,
                      "gender"=>"male"),
    "muteti" => array("name"=>"Francisca",
                      "age"=>30,
                      "gender"=>"Female")
               );
'<pre>'.
print_r($people).
'</pre>';

/*foreach ($people as $key => $value) {
    echo "<h2><strong>$key</strong></h2><br>";
    foreach ($value as $values) {
    echo $values."<br>";;
    }
}*/
//echo $people['maurice']['name'];

?>

Ответ 16

Я обычно люблю создавать свои собственные функции, как было сказано выше. Однако я хотел бы добавить к этому несколько вещей, чтобы, если я случайно ушел в отладочный код, я мог быстро найти его в базе кода. Может быть, это поможет кому-то еще.

function _pr($d) {
    echo "<div style='border: 1px solid#ccc; padding: 10px;'>";
    echo '<strong>' . debug_backtrace()[0]['file'] . ' ' . debug_backtrace()[0]['line'] . '</strong>';
    echo "</div>";
    echo '<pre>';
    if(is_array($d)) {
    print_r($d);
    } else if(is_object($d)) {
    var_dump($d);
    }
    echo '</pre>';
}

Ответ 17

Вы можете создать комбинацию клавиш в Редакторе возвышенного текста, используя Настройки → Привязки клавиш

Теперь добавьте приведенный ниже код справа от клавишных привязок в квадратную скобку []

{ 
    "keys": ["ctrl+shift+c"],
    "command": "insert_snippet",
    "args": { "contents": "echo \"<pre>\";\nprint_r(${0:\\$variable_to_debug});\necho \"</pre>\";\ndie();\n" }
}

Насладитесь сочетанием клавиш ctrl + shift + c в виде симпатичной печати PHP