I would like to know, if the included function makeSafe can be used to clean an array with just one call like
Code: Select all
$cleanArray = makeSafe($dirtyArray);
Code: Select all
$cleanArray = makeSafe($dirtyArray);
[code]...[/code]
blocks for better readabilityCode: Select all
function makeSafe($string, $is_gpc = true) {
static $cached = []; /* str => escaped_str */
if(!db_link()) sql("SELECT 1+1", $eo);
// if this is a previously escaped string, return from cached
// checking both keys and values
if(isset($cached[$string])) return $cached[$string];
$key = array_search($string, $cached);
if($key !== false) return $string; // already an escaped string
$cached[$string] = db_escape($string);
return $cached[$string];
}
Code: Select all
function makeSafe_custom($data, $is_gpc = true) {
$myReturnValue = '';
if (is_array($data){
$myReturnValue = array_walk($data, 'makeSafe');
} else {
$myReturnValue = makeSafe($data);
}
return $myReturnValue;
}
Code: Select all
/**
* array_makeSafe
*
* Applies AppGini's makeSafe function to all entries of $data-array
*
* @param array $data
* @param bool $is_gpc
* @return array
*/
function array_makeSafe(array $data, bool $is_gpc = true)
{
return array_map(function ($entry) use ($is_gpc) {
return makeSafe($entry, $is_gpc);
}, $data);
}
}
Code: Select all
$data = [
"name" => "Jan's example",
];
var_dump($data);
$data = array_makeSafe($data);
var_dump($data);
[code]...[/code]
blocks for better readabilityCode: Select all
function makeSafe_custom($data, $is_gpc = true)
{
return is_array($data) ? array_map(function ($entry) use ($is_gpc) {
return makeSafe($entry, $is_gpc);
}, $data) : makeSafe($data, $is_gpc);
}
Code: Select all
$data = [
"name" => "Jan's example",
];
var_dump($data);
$data = makeSafe_custom($data);
var_dump($data);
$text = "Jan's example";
var_dump($text);
$text = makeSafe_custom($text);
var_dump($text);
[code]...[/code]
blocks for better readabilityCode: Select all
function makeSafe_custom($data, $is_gpc = true) {
$myReturnValue = '';
if (is_array($data){
$myReturnValue = array_makeSafe($data);
} else {
$myReturnValue = makeSafe($data);
}
return $myReturnValue;
}
....
$data = makeSafe_custom($data);
Code: Select all
function makeSafe_custom($data, $is_gpc = true)
{
if (is_null($data))
throw new \Exception("Argument null", 1);
if (!(is_array($data) || is_string($data)))
throw new \Exception("Invalid argument", 1);
return is_array($data) ? array_map(function ($entry) use ($is_gpc) {
return makeSafe($entry, $is_gpc);
}, $data) : makeSafe($data, $is_gpc);
}
[code]...[/code]
blocks for better readability