note 40452 added to function.array-merge-recursive
| From: | paskaatkiosdotsk at rn2 dot php dot net | Date: | Thu, 04 Mar 2004 07:18:50 +0000 |
| Subject: | note 40452 added to function.array-merge-recursive | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-66226@lists.php.net to get a copy of this message | ||
This emulates replace of $_REQUEST according to variable_order=GPC.
<?
function array_merge_replace($array, $newValues) {
foreach ($newValues as $key => $value ) {
if (is_array($value)) {
if (!isset($array[$key])) {
$array[$key] = array();
}
$array[$key] = array_merge_replace($array[$key], $value);
} else {
$array[$key] = $value;
}
}
return $array;
}
$_REQUEST = array_merge_replace($_REQUEST, $_GET);
$_REQUEST = array_merge_replace($_REQUEST, $_POST);
$_REQUEST = array_merge_replace($_REQUEST, $_COOKIE);
?>
Useful with stripping backslashes at beginning of main include file:
<?
if (get_magic_quotes_gpc() == 1) {
function stripMagicSlashes($element) {
if (is_array($element)) {
return array_map("stripMagicSlashes", $element);
} else {
return stripslashes($element);
}
}
function array_merge_replace($array, $newValues) {
foreach ($newValues as $key => $value ) {
if (is_array($value)) {
if (!isset($array[$key])) {
$array[$key] = array();
}
$array[$key] = array_merge_replace($array[$key], $value);
} else {
$array[$key] = $value;
}
}
return $array;
}
$_GET = array_map("stripMagicSlashes", $_GET);
$_POST = array_map("stripMagicSlashes", $_POST);
$_COOKIE = array_map("stripMagicSlashes", $_COOKIE);
$_REQUEST = array_merge_replace($_REQUEST, $_GET);
$_REQUEST = array_merge_replace($_REQUEST, $_POST);
$_REQUEST = array_merge_replace($_REQUEST, $_COOKIE);
}
$GLOBALS['stripped'] = true;
?>
Based on examples from users from this site.
----
Manual Page -- http://www.php.net/manual/en/function.array-merge-recursive.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+40452
Delete -- http://master.php.net/manage/user-notes.php?action=delete+40452&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+40452&report=yes
Search -- http://master.php.net/manage/user-notes.php