<?php
/**
* function for manipulating variables, arrays, etc. in case of magic_quotes enabled or disabled
*
* @author    Joscha Feth (joscha@feth.com)
* @param    mixed    var    an array or variable
* @param    bool    quotes    defines if the output shall have quotes or not
*/

function my_magic_quotes(&$var$quotes true)
{
    foreach(
$var AS $key => $value) {
    
//~ go through the variable

        
if (is_array($var[$key])) {
        
//~ is an array, so go one level deeper
            
my_magic_quotes($var[$key],$quotes);
        } else {
        
//~ is not an array, so add/strip slashes to/from value
            
if(get_magic_quotes_gpc() && !$quotes) {
            
//~ there are quotes already added, but there shall be no quotes
                    
$var[$key] = stripslashes($var[$key]);
            } else if (!
get_magic_quotes_gpc() && $quotes) {
            
//~ there are no quotes, yet but there shall be quotes
                    
$var[$key] = addslashes($var[$key]);
            }
        } 
//~ end if else is_array

    
//~ end foreach var
//~ end function my_magic_quotes


/*
@example
Example Usage:
echo "<br><strong>_GET before:</strong><br>";
echo "<pre>";
print_r($_GET);
echo "</pre>";

//~ we don't want slahes at $_GET
my_magic_quotes($_GET,false);

//~ we also don't want them on $_POST
my_magic_quotes($_POST,false);

//~ but we want to have slashes at $_COOKIE vars - this does not make any sense, but just for example :-)
my_magic_quotes($_COOKIE,true);

echo "<br><strong>_GET after:</strong><br>";
echo "<pre>";
print_r($_GET);
echo "</pre>";
*/
?>