<?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;
}
?>