2013-05-04 4 views
1

Y at-il une fonction qui fonctionne comme $ _GET? Je veux dire une fonction qui transforme

"?var1=5&var2=true" 

à

$var1=5; 
$var2="true"; 

Alors que je peux utiliser une variable (chaîne) dans une fonction et chercher de nombreuses variables de lui?

Comme:

function manual_GET($args){ /* ? */} 

function myFunction($args) 
{ 
manual_GET($args); 
if(isset($var1))/* doesn't have to be this way, btw */ 
{ 
    do_something($var1); 
} 
//etc 
} 

P.S. : Je ne veux pas utiliser $ _GET avec l'URL car ce fichier est un fichier de classe (à savoir database_library.php), donc je ne l'exécute pas directement, ou je fais un appel AJAX. Je viens de require_once();.

+1

[ 'parse_str'] (http://php.net/manual/fr/function.parse-str.php) le fera, mais la vraie question est:" pourquoi voudriez-vous faire quelque chose comme ça? – Jon

+0

@Jon Merci, je l'expliquais juste avec un montage. – void

Répondre

2

Une manière de le réparer.

function myFunction($args){ 
return parse_str($args,$values); 
} 
+0

Umm. Quelle? Où est attribué '$ value'? Et comment supposez-vous que l'indice '0' sera ce que l'on veut? Et pourquoi diable ferais-tu écho au lieu de le rendre. En outre ... il y a des valeurs de retour __no__ pour la fonction. ^^ Si vous allez le démontrer, vous devriez le faire correctement. ^^ – Jon

1
function parseQueryString($str) { 
    $op = array(); 
    $pairs = explode("&", $str); 
    foreach ($pairs as $pair) { 
    list($k, $v) = array_map("urldecode", explode("=", $pair)); 
    $op[$k] = $v; 
    } 
return $op; 

}

cela fonctionne comme parse_str mais ne convertit pas les espaces et les points en underscores

0

"? Var1 = 5 & var2 = true"

foreach ($_GET AS $k=>$v){ 
    $$k=$v; 
} 

echo $var1; // print 5 
echo $var2; // print true 
Questions connexes