note 40452 added to function.array-merge-recursive

From: 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

« previous php.notes (#66226) next »