Forum eedomus
http://forum.eedomus.fr/

Fonction print_r en PHP
http://forum.eedomus.fr/viewtopic.php?f=62&t=12243
Page 1 sur 1
Auteur:  dommarion [ 19 Avr 2024 21:09 ]
Sujet du message:  Fonction print_r en PHP

Bonjour,
Nous disposons de la fonction var_dump, mais pas de la fonction print_r qui affiche les variables simples et tableaux ou objets.
Voir le lien pour le détail de la fonction en PHP: print_r
Code : Tout sélectionner
// Fonction de remplacement de print_r en PHP
function sdk_print_r($input, $return = false ) {
   global $indent,$return;
   if (!isset($indent)) {$indent = 0;}
   $response = "";

   if ($return == false) {
       if (is_array($input) || is_object($input)) {
          if (is_array($input)){ echo "Array\n" . str_repeat(" ", $indent) . "(\n";}
          if (is_object($input)){ echo "stdClass Object\n" . str_repeat(" ", $indent) . "(\n";}
       
          foreach ($input as $key => $value) {
               if (is_array($value) || is_object($value)) {
                   echo str_repeat(" ", $indent + 4) . "[".$key."] => ";
                   $indent .= 8;
                   sdk_print_r($value, $return);
                   $indent = $indent-8;
               } else {
                   echo str_repeat(" ", $indent + 4) .  "[".$key."] => $value\n";
               }
           }
           echo str_repeat(" ", $indent) . ")\n";
       } else {
           echo "$input\n";
       }
   }
   if ($return == true) {
      if (is_array($input) || is_object($input)) {
          if (is_array($input)){ $response.= "Array\n" . str_repeat(" ", $indent) . "(\n";}
          if (is_object($input)){ $response.= "stdClass Object\n" . str_repeat(" ", $indent) . "(\n";}
       
          foreach ($input as $key => $value) {
               if (is_array($value) || is_object($value)) {
                   $response.= str_repeat(" ", $indent + 4) . "[".$key."] => ";
                   $indent .= 8;
                   sdk_print_r($value, $return);
                   $indent = $indent-8;
               } else {
                   $response.= str_repeat(" ", $indent + 4) .  "[".$key."] => $value\n";
               }
           }
           $response.= str_repeat(" ", $indent) . ")\n";
       } else {
           $response.= "$input\n";
       }
    return $response;
   }
}

J'ai sollicité la teams pour inclure cette fonction dans la box. Malheureusement, pour des raisons de rétrocompatibilité avec la box eedomus (vs eedomus+) il n'est pas possible de mettre cela en fonction globale dans pour la box.
Il faut déclarer une fonction dans vos scripts pour avoir ce résultat, je vous propose cette fonction sous le nom de sdk_print_r() (le jour où la team la passera en global, alors il n'y aura qu'à supprimer la déclaration de votre fonction dans vos scripts :ugeek:).
Bonne soirée
dommarion
Page 1 sur 1 Le fuseau horaire est UTC+1 heure