<?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
* @return    mixed    the given var with or without slashes
*/

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

        
if (is_array($value)) {
        
//~ is an array, so go one level deeper

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

    
//~ end foreach var


    //~ return magic_quoted variable
    
return $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
$_GET        = my_magic_quotes($_GET,false);

//~ we also don't want them on $_POST
$_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 :-)
$_COOKIE    = my_magic_quotes($_COOKIE,true);

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