Красиво распечатать массив php

Есть ли симпатичная печать для PHP?

На самом деле это намного лучше, чем var_dump потому что var_dump обрезает результат, если это большой массив или большая строка .

упрощенной версией будет: echo «

". print_r ($ массив, 1). "";

Не забудьте экранировать вывод print_r : $formatted = print_r($array, true); print «

" . htmlspecialchars($formatted, ENT_QUOTES, 'UTF-8', true) . "

«;

Лучшее, что я нашел, это следующее:

И если вы хотите более подробно:

Добавление тега HTML в среду веб-разработки будет уважать новые строки \n функции печати правильно, без необходимости добавлять некоторые html

Для простоты print_r() и var_dump() нельзя бить. Если вы хотите что-то немного интересное или имеете дело с большими списками и/или глубоко вложенными данными, Krumo сделает вашу жизнь намного проще — это предоставляет вам хорошо отформатированный дисплей с разворачиванием/расширением.

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

Это будет печатать массив как список вложенных списков HTML. HTML и ваш браузер позаботятся о отступов и сделать его разборчивым.

Лучший способ сделать это —

$array=array("foo"=>"999","bar"=>"888","poo"=>array("x"=>"111","y"=>"222","z"=>"333")); echo "
".print_r($array,true)."

";

Массив
(
[foo] = > 999
[bar] = > 888
[poo] = > Array
(
[x] = > 111
[y] = > 222
[n] = > 333
)
)

О втором параметре print_r «true» из документации:

Если для этого параметра установлено значение TRUE, print_r() вернет а не распечатать его.

Не забудьте установить html_errors = on в php.ini, чтобы получить красивую печать var_dump() в сочетании с xdebug.

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

function print_array($title,$array)< if(is_array($array))< echo $title."
". "||---------------------------------||
". "
"; print_r($array); echo "

". "END ".$title."
". "||---------------------------------||
"; >else < echo $title." is not an array."; >>

//your array $array = array('cat','dog','bird','mouse','fish','gerbil'); //usage print_array("PETS", $array); 
PETS ||---------------------------------|| Array ( [0] => cat [1] => dog [2] => bird [3] => mouse [4] => fish [5] => gerbil ) END PETS ||---------------------------------|| 

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

Я не видел, чтобы кто-то упомянул о выполнении «запятой» с вашей командой print_r, а затем вы МОЖЕТЕ использовать его встроенный с html, не пройдя через все обручи или многозадачные поисковые решения.

print "session: 
".print_r($_SESSION, true)."

";

Кроме того, вы должны также выполнить htmlspecialchars() вокруг print_r() , чтобы защитить от возможных хранимых угроз XSS.

Если вы делаете больше отладки, важно Xdebug. По умолчанию он переопределяет var_dump() своей собственной версией которая отображает гораздо больше информации, чем PHP по умолчанию var_dump() .

Blarg. Дамп var в Xdebug отстой, потому что он выводит HTML . О да, выглядит фантастически в тесте CLI.

error_log(print_r($variable,true)); 

для отправки в syslog или eventlog для Windows

echo svar_dump (array ( «a», «b» = > «2», «c» = > array ( «d», «e» = > array ( «f», «g» ))));

Изображение 106328


'; else $brs=''; $return = '>--> "; > else if (is_float($vInput)) < $return .= gettype($vInput)." (".doubleval($vInput).") "; > else if (is_string($vInput)) < $return .= "
".gettype($vInput)."(" . strlen($vInput) . ") \"" . _my_html_special_chars($vInput). "\"

"; #nl2br((_nbsp_replace, > else if (is_bool($vInput)) < $return .= gettype($vInput)."(" . ($vInput ? "true" : "false") . ")

"; > else if (is_array($vInput) or is_object($vInput)) < reset($vInput); $return .= gettype($vInput); if (is_object($vInput)) < $return .= " \"".get_class($vInput)."\" Object of ".get_parent_class($vInput); if (get_parent_class($vInput)=="") $return.="stdClass"; $return.=""; $vInput->class_methods="\n".implode(get_class_methods($vInput),"();\n"); > $return .= " count = [" . count($vInput) . "] dimension = [ ]

"; > $return .= "

EOH; if (is_int($vInput)) < $return .= gettype($vInput)." (".intval($vInput).")
"; $return .= EOH; while (list($vKey, $vVal) = each($vInput))< $return .= "
"; $return .= (is_int($vKey)) ? "" : "\""; $return .= _nbsp_replace(_my_html_special_chars($vKey)); $return .= (is_int($vKey)) ? "" : "\""; $return .= " => "; if ($iLevel>$maxlevel and is_array($vVal)) $return .= svar_dump("array(".sizeof($vVal)."), but Recursion Level > $maxlevel!!", ($iLevel + 1), $maxlevel); else if ($iLevel>$maxlevel and is_object($vVal)) $return .= svar_dump("Object, but Recursion Level > $maxlevel!!", ($iLevel + 1), $maxlevel); else $return .= svar_dump($vVal, ($iLevel + 1), $maxlevel) . "

"; > else < if (gettype($vInput)=="NULL") $return .="null"; else $return .=gettype($vInput); if (($vInput)!="") $return .= " (".($vInput).")

"; > $return .= "

"; return $return; > function _nbsp_replace($t) < return str_replace(" "," ",$t); >function _my_html_special_chars($t,$double_encode=true)< if(version_compare(PHP_VERSION,'5.3.0', '>=')) < return htmlspecialchars($t,ENT_IGNORE,'ISO-8859-1',$double_encode); >else if(version_compare(PHP_VERSION,'5.2.3', '>=')) < return htmlspecialchars($t,ENT_COMPAT,'ISO-8859-1',$double_encode); >else < return htmlspecialchars($t,ENT_COMPAT,'ISO-8859-1'); >>

Источник

Как вывести PHP массив

Примеры использования PHP функций и циклов для вывода всех элементов массива в окно браузера.

Функция print_r()

Функция print_r() выводит информацию о переменной в удобочитаемом виде. Чтобы отобразить пробелы и переносы результат функции нужно обернуть в тег .

$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); echo '
'; print_r($array); echo '

';

Результат:

Array ( [0] => Andi [1] => Benny [2] => Cara [3] => Danny [4] => Emily )

Функция var_dump()

Функция var_dump() отображает информацию о переменной, включая тип и значение.

$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); echo '
'; var_dump($array); echo '

';

Результат:

array(5) < [0]=>string(4) "Andi" [1]=> string(5) "Benny" [2]=> string(4) "Cara" [3]=> string(5) "Danny" [4]=> string(5) "Emily" >

var_export()

Функция var_export() возвращает строковое представление переменной в виде полноценного PHP-кода.

$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); echo '
'; echo var_export($array); echo '

';

Результат:

array ( 0 => 'Andi', 1 => 'Benny', 2 => 'Cara', 3 => 'Danny', 4 => 'Emily', )

Цикл foreach

Цикл foreach специально создан для поэлементного перебора массивов.

$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); foreach ($array as $row) < echo $row . "
\r\n"; >

Результат:

Andi 
Benny
Cara
Danny
Emily

Пример с выводом нумерованного списка с использованием индексов массива:

$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); foreach ($array as $n => $row) < echo ($n + 1) . '.' . $row . "
\r\n"; >

Результат:

1.Andi 
2.Benny
3.Cara
4.Danny
5.Emily

Чтобы не выводить последний
, добавим условие:

$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); foreach ($array as $n => $row) < echo ($n + 1) . '.' . $row; if ($n < count($array) - 1) < echo "
\r\n"; > >

Результат:

1.Andi 
2.Benny
3.Cara
4.Danny
5.Emily

Цикл for

Цикл for подойдет только в случаях, когда индексы массива имеют непрерывную нумерацию.

$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); for ($n = 0; $n < count($array); $n++) < echo $n + 1 . '.' . $array[$n] . "
\r\n"; >

Результат:

1.Andi 
2.Benny
3.Cara
4.Danny
5.Emily

Цикл while

Цикл while такое же работает как и for .

$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); $index = 0; while ($index < count($array)) < echo $index + 1 . '.' . $array[$index] . "
\r\n"; $index++; >

Результат:

1.Andi 
2.Benny
3.Cara
4.Danny
5.Emily

Функция implode()

Также, для вывода массива удобно использовать функцию implode() , которая объединяет элементы массива через разделитель.

$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); echo implode("
\r\n", $array);

Результат:

Andi 
Benny
Cara
Danny
Emily

Источник

print_r() выводит информацию о переменной в удобочитаемом виде.

print_r() , var_dump() и var_export() могут также показывать защищенные (protected) и закрытые (private) атрибуты объектов в PHP 5. Статические элементы класса не будут отображены.

Список параметров

Выражение для вывода на экран.

Если вы хотите перехватить вывод print_r() , используйте параметр return . Если его значение равно TRUE , то print_r() вернет результат вывода вместо вывода в браузер (который производится по умолчанию).

Возвращаемые значения

Если в функцию передаются значения типов string , integer или float , будет напечатано само значение. Если передается массив array , значения будут напечатаны в формате, показывающем ключи и элементы массива. Аналогичный формат вывода используется для объектов.

Если параметр return установлен в TRUE , данная функция вернет строку ( string ). В противном случае возвращаемое значение будет равно TRUE .

Примечания

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start() .

Примеры

Пример #1 Пример использования print_r()

 
$a = array ( 'a' => 'apple' , 'b' => 'banana' , 'c' => array ( 'x' , 'y' , 'z' ));
print_r ( $a );
?>

Результат выполнения данного примера:

 
Array ( [a] => apple [b] => banana [c] => Array ( [0] => x [1] => y [2] => z ) )

Пример #2 Пример использования параметра return

$b = array ( ‘m’ => ‘monkey’ , ‘foo’ => ‘bar’ , ‘x’ => array ( ‘x’ , ‘y’ , ‘z’ ));
$results = print_r ( $b , true ); // $results теперь содержит вывод print_r
?>

Смотрите также

  • ob_start() — Включение буферизации вывода
  • var_dump() — Выводит информацию о переменной
  • var_export() — Выводит в браузер или возвращает интерпретируемое строковое представление переменной

Источник

Читайте также:  Фон для TR
Оцените статью