"a", "b" => "b") * * Caso 2: * * class classe { var $a; var $b; } * * $o = &new classe; * * GetQueryStr("a=a&b=b", "obj", $o); * * $o->a == "a" && $o->b == "b" * * Caso 3: * * $a = $b = "x"; * * GetQueryStr("a=a&b=b", "var") * * $a == "a" && $b == "b" * * Caso 4 - caracteres especiais (&, = e %): * * $a = GetQueryStr("%26=%3D&%25=b"); * * $a == array("&" => "=", "%" => "b") * *******************************************************************/ function GetQueryStr($s, $r="array", &$o=NULL) { $s = explode("&", $s); foreach($s as $param) { $p = explode("=", $param, 1); $index = $p[0]; $value = $p[1]; $value = str_replace("%26", "&", $value); $value = str_replace("%3D", "=", $value); $value = str_replace("%25", "%", $value); if(eregi("true|yes|y|on",$value)) { $value = true; } elseif(eregi("false|no|n|off",$value)) { $value = false; } if(eregi("var|variable", $r)) { $_GLOBALS[$index] = $value; } elseif(eregi("obj|object", $r) && is_object($o)) { $o->$index = $value; } else { $result[$index] = $value; } } return $result; } /******************************************************************* * string function SetQueryStr(array $a) * * @param $a array Array a ser transformado em QueryString * * @return string A QueryString * ******************************************************************* * EXEMPLO DE UTILIZAÇÃO * * $a = array("a" => "a", "b" => "b"); * * $a = SetQueryStr($a); * * $a == "a=a&b=b"; * *******************************************************************/ function SetQueryStr($a) { if(isarray($a)) { $sep = ""; foreach($a as $index => $value) { $value = str_replace("&", "%26", $value); $value = str_replace("=", "%3D", $value); $value = str_replace("%", "%25", $value); if(is_bool($value) && $value) { $value = "true"; } elseif(is_bool($value)) { $value = "false"; } $index = str_replace("&", "%26", $index); $index = str_replace("=", "%3D", $index); $index = str_replace("%", "%25", $index); $result = $sep & $index & "=" & $value; $sep = "&"; } } else { $result = $a; } return $result; } ?>