<?

function encodeMyUrl($str) {
    
    
$return_val = str_replace("%26", "<AND>", $str);
    
$return_val = str_replace("%3D", "<EQUALS>", $return_val);
    return
$return_val;

}

function
decodeGet() {

    while (list(
$key,$value) = each($_GET)) {
        
$value = is_array($value) ? array_map('stripslashes', $value) : stripslashes($value);
        
$value = str_replace("<AND>", "&", $value);
        
$_GET[$key] = str_replace("<EQUALS>", "=", $value);
    }

}


?>
<pre>
<?
decodeGet
();
var_dump($_GET);
?>
</pre>

<?
$querystr
= "?debug1=testing%26encoded%3Dquerystrings&debug2=done";
$querystr = encodeMyUrl($querystr);
?>
<a href="<?= $_SERVER['PHP_SELF'] ?><?= $querystr ?>">Test Link</a>