Estou consertando alguns scripts PHP e sinto falta da bonita impressora de Ruby. ie
require 'pp'
arr = {:one => 1}
pp arr
irá gerar {: one => 1}. Isso funciona até mesmo com objetos bastante complexos e torna muito mais fácil cavar em um script desconhecido. Existe alguma maneira de duplicar essa funcionalidade no PHP?
php
pretty-print
Aaron Lee
fonte
fonte
print_r()
gera automaticamente e não retorna nada (a menos que seu segundo parâmetro sejatrue
), então você não pode concatenar com outra string. Use o seguinte:function pr($var) { print '<pre>'; print_r($var); print '</pre>'; }
Isso é o que eu uso para imprimir meus arrays:
A magia vem com a
pre
etiqueta.fonte
var_dump
porquevar_dump
guarnições o resultado se ele é um grande matriz ou uma grande corda ...print_r
:$formatted = print_r($array, true); print "<pre>" . htmlspecialchars($formatted, ENT_QUOTES, 'UTF-8', true) . "</pre>";
Para simplificar, print_r () e var_dump () não podem ser batidos. Se você quer algo um pouco mais elaborado ou está lidando com listas grandes e / ou dados profundamente aninhados, o Krumo tornará sua vida muito mais fácil - ele fornece a você uma tela de recolhimento / expansão bem formatada.
fonte
O melhor que encontrei até agora é este:
E se você quiser mais detalhado:
Adicionar uma
<pre>
tag HTML em um ambiente de desenvolvimento web respeitará as novas linhas\n
da função de impressão corretamente, sem ter que adicionar algum html<br>
fonte
Para PHP, você pode facilmente tirar proveito do HTML e de alguns códigos recursivos simples para fazer uma representação bonita de arrays e objetos aninhados.
Isso imprimirá a matriz como uma lista de listas HTML aninhadas. O HTML e seu navegador cuidarão de recuar e torná-lo legível.
fonte
Que tal print_r?
http://www.php.net/print_r
fonte
Lembre-se de definir
html_errors = on
no php.ini para obter uma impressão bonita de var_dump () em combinação com xdebug.fonte
A melhor maneira de fazer isso é
Exemplo:
Resultado:
Matriz
(
[foo] => 999
[bar] => 888
[poo] => Matriz
(
[x] => 111
[y] => 222
[z] => 333
)
)
Leia mais sobre print_r .
Sobre o segundo parâmetro de print_r "true" da documentação:
fonte
Esta é uma pequena função que eu uso o tempo todo, é útil se você estiver depurando arrays. O parâmetro title fornece algumas informações de depuração como o array que você está imprimindo. ele também verifica se você o forneceu com um array válido e permite que você saiba se não o fez.
Uso básico:
Resultados:
fonte
para enviar para syslog ou log de eventos para janelas
fonte
Se você estiver fazendo mais depuração, o Xdebug é essencial. Por padrão, ele é substituído
var_dump()
por sua própria versão, que exibe muito mais informações do que o padrão do PHPvar_dump()
.Também existe o Zend_Debug .
fonte
Eu não vi que alguém mencionou fazer uma "vírgula verdadeira" com o comando print_r, e então você PODE usá-lo inline com html sem passar por todos os obstáculos ou soluções de aparência multi-bagunçadas fornecidas.
fonte
htmlspecialchars()
oprint_r()
, para se proteger contra ameaças XSS possivelmente armazenadas.um one-liner que lhe dará o equivalente aproximado de "visualização da fonte" para ver o conteúdo do array:
assume php 4.3.0+:
echo nl2br(str_replace(' ', ' ', print_r($_SERVER, true)));
fonte
Esta função funciona muito bem desde que você defina
header('Content-type: text/plain');
antes de enviar a string de retornohttp://www.php.net/manual/en/function.json-encode.php#80339
fonte
Se você quiser uma representação mais agradável de qualquer variável do PHP (do que apenas texto simples), sugiro que tente nice_r () ; ele imprime valores mais informações úteis relevantes (por exemplo: propriedades e métodos para objetos). Disclaimer: Eu mesmo escrevi isso.
fonte
Uma bela saída colorida:
echo svar_dump (array ("a", "b" => "2", "c" => array ("d", "e" => array ("f", "g"))));
será semelhante a:
fonte:
fonte
Já que eu encontrei isso no google procurando por como formatar json para torná-lo mais legível para solução de problemas.
fonte
Se o seu servidor objetar que você altere os cabeçalhos (para texto simples) após alguns terem sido enviados, ou se você não quiser alterar o seu código, apenas "veja o código-fonte" do seu navegador - o seu editor de texto (até mesmo o bloco de notas) irá processar novas linhas melhores do que o seu navegador e vão virar uma bagunça confusa
Array ([root] => 1 [sub1] => Array () [sub2] => Array () [sub3] => Array () [sub4] => Array () ...
em uma representação devidamente tabulada:
fonte
Se você deseja usar o resultado em outras funções, pode obter uma expressão PHP válida como uma string usando var_export :
Para muitas coisas que as pessoas estão fazendo em suas perguntas, espero que tenham dedicado uma função e não copiem e colem o registro extra.
var_export
obtém uma saída semelhante avar_dump
nessas situações.fonte
Aqui está uma versão do pp que funciona para objetos e também para matrizes (também tirei as vírgulas):
fonte
Aqui está outro despejo simples sem toda a sobrecarga de print_r:
fonte
Acho que a melhor solução para imprimir bastante json em php é alterar o cabeçalho:
(se você usar text / json, muitos navegadores solicitarão um download ... o Facebook usa text / javascript para seu protocolo gráfico, então não deve ser tão ruim)
fonte
FirePHP é um plugin do firefox que imprime um recurso de registro muito bonito.
fonte
Ou use bibliotecas externas como REF: https://github.com/digitalnature/php-ref
fonte
Expandindo a resposta de @stephen, alguns ajustes menores foram adicionados para fins de exibição.
Formatará qualquer matriz multidimensional da seguinte forma:
fonte
Isso é o que eu costumo usar:
fonte
Fiz esta função para imprimir uma matriz para depuração:
Espero que ajude, Tziuka S.
fonte
Que tal uma única função autônoma chamada de depuração de https://github.com/hazardland/debug.php .
A saída html debug () típica tem esta aparência:
Mas você pode gerar dados como um texto simples com a mesma função também (com 4 guias de espaço recuado) como este (e até mesmo registrá-lo no arquivo, se necessário):
fonte
No PHP 5.4, você pode usar JSON_PRETTY_PRINT se estiver usando a função json_encode.
http://php.net/manual/en/function.json-encode.php
fonte
Eu reuni algumas dessas opções em uma pequena função auxiliar em
http://github.com/perchten/neat_html/
Você pode imprimir em html, com saída organizada, bem como jsonificar a string, imprimir automaticamente ou retornar etc.
Ele lida com inclusões de arquivos, objetos, matrizes, nulos vs falsos e assim por diante.
Existem também alguns auxiliares globalmente acessíveis (mas com um escopo bem definido) para quando usar as configurações de uma maneira mais semelhante ao ambiente
Além de argumentos opcionais dinâmicos, baseados em array ou string.
E, eu continuo adicionando a ele. Portanto, é compatível: D
fonte