lo script che pubblico, ha lo scopo di verificare e mettere a punto ma anche di documentare i contenuti di array e o oggetti
lo script si compone di 2 funzioni, "show_var" e "log_var", che accettano l'elemento da visualizzare e / o registrare nel log
anche in questo caso, interessa il risultato che produce,
non la bellezza del codice o delle sue presentazioni
il risultato è la concretezza, l'estetica è solo una componente soggettiva
può essere usato per qualsiasi tipo di array e/o oggetto per verificare o documentare i suoi contenuti,
si, esistono "var_dump" e "print_r", ma quanta fatica in meno ....
le funzioni si eseguono molto semplicemente, includendo lo script e richiamandole all'interno del proprio codice dove servono
nella "log_var" è stato inserito un limite per gli elementi che dovessero superare i 255 caratteri
(per esempio, 730 precompilato invia e riceve file di lunghezza molto maggiore come elementi di array/oggetti)
salute a tutti e buon Natale
lo script si compone di 2 funzioni, "show_var" e "log_var", che accettano l'elemento da visualizzare e / o registrare nel log
anche in questo caso, interessa il risultato che produce,
non la bellezza del codice o delle sue presentazioni
il risultato è la concretezza, l'estetica è solo una componente soggettiva
può essere usato per qualsiasi tipo di array e/o oggetto per verificare o documentare i suoi contenuti,
si, esistono "var_dump" e "print_r", ma quanta fatica in meno ....
le funzioni si eseguono molto semplicemente, includendo lo script e richiamandole all'interno del proprio codice dove servono
PHP:
$pagina = '{"success":{"msg_user":"","msg_id":"","users":[{"userid":"","card":"00000104","firstname":"Mario","lastname":"Rossi","email":"","birthday":"","phone":"","address":"","city":"","zip_code":"","country":"","privacy_profilazione":"0","privacy_mktg":"0","privacy_regolamento":"0","card_detail":{"status":{"attivazione":"","associazione":"associata"},"coupons_used":0,"coupons_available":0,"points_balance":{"points":0,"grand_total":0,"last_update":"2017-12-10 12:12:59"}},"store_frequency":"0","transactions":"","sesso":""}]}}';
$data = json_decode($pagina);
require_once 'myUtils/show_vars.php';
echo "<h2>pagina</h2><br />".show_var($data); // visualizzazione sullo schermo
error_log(PHP_EOL."pagina => ".log_var($data), 0); // registrazione nel log
// altri esempi
echo "<h2>Lista di tutte le variabili definite</h2><br />".show_var(get_defined_vars());
echo "<h2>POST</h2><br />".show_var($_POST);
nella "log_var" è stato inserito un limite per gli elementi che dovessero superare i 255 caratteri
(per esempio, 730 precompilato invia e riceve file di lunghezza molto maggiore come elementi di array/oggetti)
PHP:
<?php
function show_var($variable)
{
$tabella = "<table border='1'>"
. "<thead><tr><td><b>KEY</b></td><td><b>VALUE</b></td></tr></thead>"
. "<tbody>";
foreach ($variable as $key => $value)
{
if ($key !== "_SERVER")
{
if ($value == "0") $value = 0;
elseif ($value === true) $value = 'true';
elseif ($value === false) $value = 'false';
elseif ($value === null) $value = 'null';
elseif ( empty($value) ) $value = 'empty';
if ( is_array($value) or is_object($value) )
{
$tabella .= "<tr><td>".$key."</td><td>".show_var($value)."</td></tr>";
}
else
{
$tabella .= "<tr><td>".$key."</td><td>".$value."</td></tr>";
}
}
}
$tabella .= "</tbody>";
$tabella .= "</table>";
return $tabella;
}
ini_set('log_errors_max_len', 8192);
function log_var($value, $max_depth = 99, $key = NULL, $depth = 0, $refChain = array(), $tab = NULL, $text = NULL)
{
if($depth > 0) $tab = str_repeat(" ", $depth);
$text .= $tab . ($key !== NULL ? $key . " => " : "");
if (is_array($value) || is_object($value))
{
$recursion = FALSE;
if (is_object($value))
{
foreach ($refChain as $refVal)
{
if ($refVal === $value)
{
$recursion = TRUE;
break;
}
}
array_push($refChain, $value);
}
$text .= (is_array($value) ? "array" : "object") . "<br />".$tab."( ";
if ($recursion)
{
$text .= "*RECURSION* ";
}
elseif (isset($max_depth) && $depth >= $max_depth)
{
$text .= "*MAX DEPTH REACHED* ";
}
else
{
if (!empty($value))
{
$text .= "<br />";
foreach ($value as $child_key => $child_value)
{
$text .= log_var($child_value, $max_depth, (is_array($value) ? "[" : "") . $child_key . (is_array($value) ? "]" : ""), $depth+1, $refChain) . ",<br />";
}
$text .= "<br />" . $tab;
}
}
$text .= ")";
if (is_object($value))
{
array_pop($refChain);
}
}
else
{
if ($value == "0") $value = 0;
elseif ($value === true) $value = 'true';
elseif ($value === false) $value = 'false';
elseif ($value === null) $value = 'null';
elseif ( empty($value) ) $value = 'empty';
elseif ( is_string ($value) and strlen($value) > 255 ) $value = 'MAX-LEN';
$text .= $value;
}
$text = str_replace("<br /><br />", "<br />", $text);
$text = str_replace("<br />", PHP_EOL, $text);
return $text;
}
?>
salute a tutti e buon Natale
Ultima modifica: