J'ai une simple variable $_GET[]
query var pour afficher les données de test lors du retrait des requêtes de la base de données.
<?php if($_GET['test']): ?>
<div id="test" style="padding: 24px; background: #fff; text-align: center;">
<table>
<tr style="font-weight: bold;"><td>MLS</td></tr>
<tr><td><?php echo KEY; ?></td></tr>
<tr style="font-weight: bold;"><td>QUERY</td></tr>
<tr><td><?php echo $data_q; ?></td></tr>
<tr style="font-weight: bold;"><td>DATA</td></tr>
<tr><td><?php var_dump($data); ?></td></tr>
</table>
</div>
<?php endif; ?>
Quand je fais var_dump
, comme prévu, c'est cette grosse chaîne de tableau qui est entièrement masquée. Existe-t-il un moyen d’ajouter au moins des sauts de ligne pour cela ou d’afficher le var_dump
de manière plus lisible? Je suis ouvert aux suggestions de jQuery sur la manipulation de la chaîne après son affichage.
J'aime vraiment var_export()
. Si vous aimez copier/coller du code, essayez:
echo '<pre>' . var_export($data, true) . '</pre>';
Ou même quelque chose comme ceci pour la coloration syntaxique des couleurs:
highlight_string("<?php\n\$data =\n" . var_export($data, true) . ";\n?>");
Utiliser du code HTML préformaté
echo '<pre>';
var_dump($data);
echo '</pre>';
J'ai ajouté des réponses à @AbraCadaver . J'ai inclus un script javascript qui supprimera les balises php de démarrage et de fermeture . Nous aurons un fichier de vidage plus joli.
Peut-être que quelqu'un comme ça aussi.
function dd($data){
highlight_string("<?php\n " . var_export($data, true) . "?>");
echo '<script>document.getElementsByTagName("code")[0].getElementsByTagName("span")[1].remove() ;document.getElementsByTagName("code")[0].getElementsByTagName("span")[document.getElementsByTagName("code")[0].getElementsByTagName("span").length - 1].remove() ; </script>';
die();
}
Résultat avant:
Résultat après:
Maintenant, nous n'avons pas de balises de démarrage et de fermeture php
Si tout se passe bien, vous pouvez souvent essayer le vieux "voir le code source". Parfois, les vidages, les messages et les exceptions semblent ne constituer qu'une longue chaîne lorsqu'il s'avère que les sauts de ligne ne s'affichent tout simplement pas. Surtout les arbres XML.
Sinon, j'ai déjà créé un petit outil appelé InteractiveVarDump dans ce but précis. Cela a certes ses limites, mais cela peut aussi être très pratique parfois. Même s'il a été conçu avec PHP 5 à l'esprit.
Le meilleur moyen et le plus simple d’obtenir Nice var_dump est d’utiliser xDebug (indispensable pour tout développeur php) Installer de manière Debian
Dans la console: apt-get install php-xdebug
Après cela, vous devriez ouvrir php.ini (cela dépend de la pile que vous utilisez) pour son fichier /etc/php/7.0/fpm/php.ini.
Rechercher display_errors
set same -> display_errors = On
Vérifiez html_errors
dans le même fichier un peu plus bas, il doit aussi être On
Sauvegarder et quitter
Après avoir ouvert /etc/php/7.0/fpm/conf.d/20-xdebug.ini
Et ajoutez à la fin: `` ` Xdebug.cli_color = 1
`` `... Enregistrez et quittez.
De nombreuses autres options et documents disponibles pour xdebug peuvent être créés ici.
Bonne chance et amusez-vous bien !!!
Vous pouvez utiliser celui-ci debugVar()
au lieu de var_dump()
Découvrez: https://github.com/E1NSER/php-debug-function
function var_view($var)
{
ini_set("highlight.keyword", "#a50000; font-weight: bolder");
ini_set("highlight.string", "#5825b6; font-weight: lighter; ");
ob_start();
highlight_string("<?php\n" . var_export($var, true) . "?>");
$highlighted_output = ob_get_clean();
$highlighted_output = str_replace( "<?php", '', $highlighted_output );
$highlighted_output = str_replace( "?>", '', $highlighted_output );
echo $highlighted_output;
die();
}
Voici ma fonction pour avoir un joli var_dump. Combiné avec Xdebug , il est très utile d’avoir une meilleure vision de ce que nous faisons du dumping.
J'ai un peu amélioré l'affichage de Xdebug (donner de l'espace, séparer les valeurs, encapsuler de longues variables, etc.).
Lorsque vous appelez la fonction, vous pouvez définir un titre, un arrière-plan, une couleur de texte pour distinguer tous vos var_dump dans une page.
Ou pas ;)
/**
* Pretty var_dump
* Possibility to set a title, a background-color and a text color
*/
function dump($data, $title="", $background="#EEEEEE", $color="#000000"){
//=== Style
echo "
<style>
/* Styling pre tag */
pre {
padding:10px 20px;
white-space: pre-wrap;
white-space: -moz-pre-wrap;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
Word-wrap: break-Word;
}
/* ===========================
== To use with XDEBUG
=========================== */
/* Source file */
pre small:nth-child(1) {
font-weight: bold;
font-size: 14px;
color: #CC0000;
}
pre small:nth-child(1)::after {
content: '';
position: relative;
width: 100%;
height: 20px;
left: 0;
display: block;
clear: both;
}
/* Separator */
pre i::after{
content: '';
position: relative;
width: 100%;
height: 15px;
left: 0;
display: block;
clear: both;
border-bottom: 1px solid grey;
}
</style>
";
//=== Content
echo "<pre style='background:$background; color:$color; padding:10px 20px; border:2px inset $color'>";
echo "<h2>$title</h2>";
var_dump($data);
echo "</pre>";
}
Il existe un paquet Symfony pour cela: https://symfony.com/doc/current/components/var_dumper.html .