22 Voix

PHP: Comment écrire la Sortie de var_dump() dans String

Question de Invité | 23/06/2021 à 22:37

Pour afficher le contenu d'une variable PHP, vous pouvez simplement utiliser la fonction var_dump(). Par exemple, vous pouvez simplement écrire "var_dump($array);" pour afficher le contenu du tableau $array en PHP.

Malheureusement, le résultat de var_dump() est toujours écrit directement sur la page Web. Avec cela, il n'est pas possible de stocker le résultat dans une variable de chaîne / string afin de le traiter davantage ou plus tard.

Cependant, je recherche une fonction qui peut m'aider à y parvenir d'une manière ou d'une autre. Alors, y a-t-il une possibilité d'exécuter quelque chose comme var_dump() et d'enregistrer le résultat dans une variable (une chaîne / string) ?

RépondrePositifNégatifDateVoix
22 Voix

En utilisant la fonction print_r() vous pouvez faire ce que vous voulez. Vous n'avez qu'à passer "true" comme deuxième paramètre à la fonction et print_r() n'imprimera plus les résultats directement. Au lieu de cela, il renverra le résultat sous forme de chaîne:

$arr = array(1,2,3);
$str = print_r($arr, true);

Veuillez noter que les informations fournies par print_r() ne sont pas aussi détaillées que les informations provenant de var_dump(), mais peut-être que cela peut néanmoins vous aider.
24/06/2021 à 11:37

RépondrePositif Négatif
11 Vote

Si vous voulez avoir exactement la même sortie que celle fournie par var_dump(), vous pouvez utiliser output buffering (tampon de sortie):

ob_start();
var_dump($someVar);
$str = ob_get_clean();

Avec ob_start(), la output buffering est lancée. Après cela, la sortie de votre script ne sera plus envoyée au navigateur. Au lieu de cela, il est mis en cache. Chaque sortie de chaque commande que vous exécuterez après ob_start() sera stockée dans le buffer. Ainsi, par exemple, également avec la sortie de var_dump(). Ensuite, vous pouvez lire dans le buffer stocké avec ob_get_clean() et vous pouvez l'enregistrer dans n'importe quelle variable.

Théoriquement, vous pouvez écrire votre propre fonction pour gérer cela:

function var_dump_tostring($var) {
  ob_start();
  var_dump($var);
  return ob_get_clean();
}

Après avoir déclaré cette fonction, vous pouvez simplement appeler la fonction avec votre variable pour obtenir le résultat var_dump sous forme de chaîne.
25/06/2021 à 12:37

RépondrePositif Négatif
00 Voix

Alternativement, je veux aussi suggérer la fonction var_export. Cette fonction fonctionne de manière similaire à print_r et renvoie un code PHP valide décrivant la variable passée.

$arr = array(1,2,3);
$str = var_export($arr, true);

Semblable à print_r, vous pouvez également passer "true" comme deuxième paramètre pour obtenir le résultat renvoyé sous forme de string.
26/06/2021 à 20:23

RépondrePositif Négatif
00 Voix

Je pense que la manière classique ne doit pas rester inaperçue. Vous pouvez également sortir le contenu du tableau à la main:

foreach($arr AS $key => $value) {
  echo "$key => $value 
"; }

Certes, jusqu'à présent, toutes les autres solutions proposées sont beaucoup plus simples que cela.
27/06/2021 à 18:07

RépondrePositif Négatif
Répondre

Sujets Connexes

CSS: Comment inclure CSS dans HTML

Tutoriel | 0 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.