debug dump functie
Auteur: Richard - 25 juni 2006 - 14:48 - Gekeurd door: Thomas - Hits: 3118 - Aantal punten: (0 stemmen)
Je plaatst deze code ergens in de code, en je kunt voortaan dump() aanroepen (met willekeurig aantal parameters), en deze worden dan netjes weergeven.
note: ik heb de basis uit Zend Framework gebruikt, maar compleet aangepast.
update: ik heb nu alle grote functionaliteit in de replace_nl functie gedaan, die is dus ook wel flink groter...
update 2: domme fout, dump functie controleerde per ongeluk of er wel een argument was, en returnde. dit is opgelost;-)
|
Code: |
<?php
/**
* Vervang bepaalde dingen in aangegeven variabele
*
* @param mixed $a
* @return mixed
*/
function replace_nl ($a)
{
static $replace = array ("\r" => '\r', "\n" => '\n');
// check eerst op een array voor mapping
return (is_array ($a)
// als het een array is mappen we recursief deze functie erover
? array_map ('replace_nl', $a)
// anders als het een object is ...
: (is_object ($a)
// doen we hetzelfde, maar casten we eerst naar array, en
// uiteindelijk weer naar object
? (object) array_map ('replace_nl', (array) $object)
// anders als het een string is ...
: (is_string ($a)
// doen we htmlspecialchars ...
? htmlspecialchars (
// over een replace ...
str_replace (
// van de keys van $replace
array_keys ($replace),
// naar de waardes van $replace
array_values ($replace),
// op het argument
$a
)
)
// als het iets anders is, gewoon returnen
: $a
)
)
);
}
/**
* Netjes een variabele dumpen
*
* @return void
* @uses replace_nl
*/
function dump ()
{
// als er geen argumenten zijn vooral niks doen...
if (!func_num_args ())
{
return;
}
// start output buffering
ob_start ();
// loop door alle gegeven argumenten (variabel)
foreach (func_get_args () as $data)
{
// voeren we simpel de functie eroverheen
$data = replace_nl ($data);
// dump de variabele
var_dump ($data);
}
// eventjes nette output produceren met <pre> en </pre>,
// html weggewerkt, en de output iets verbeterd.
echo '<pre>' . preg_replace ('~]=>\s+~', '] => ', ob_get_clean ()) . '</pre>';
// returnen
return;
}
?>
<?php /** * Vervang bepaalde dingen in aangegeven variabele * * @param mixed $a * @return mixed */ function replace_nl ($a) { // check eerst op een array voor mapping // als het een array is mappen we recursief deze functie erover // anders als het een object is ... // doen we hetzelfde, maar casten we eerst naar array, en // uiteindelijk weer naar object // anders als het een string is ... // doen we htmlspecialchars ... // over een replace ... // van de keys van $replace // naar de waardes van $replace // op het argument $a ) ) // als het iets anders is, gewoon returnen : $a ) ) ); } /** * Netjes een variabele dumpen * * @return void * @uses replace_nl */ function dump () { // als er geen argumenten zijn vooral niks doen... { return; } // start output buffering // loop door alle gegeven argumenten (variabel) { // voeren we simpel de functie eroverheen $data = replace_nl ($data); // dump de variabele } // eventjes nette output produceren met <pre> en </pre>, // html weggewerkt, en de output iets verbeterd. // returnen return; } ?>
Download code (.txt)
|
|
Stemmen |
Niet ingelogd. |
|