Bonjour à tous.

Je poste un petit message au cas ou quelqu'un ai besoin de cette fonction un jour.

Vous avez une URL du type : param1=2549&appname=appName1&appname=appName2&appname=appName3&appname=appName4&appname=appName5&apptype=thetype&idsess=1231324567980147dzeze55sd4&action=myaction

La petite méthode qui va bien

public static function getMultipleParameters()
    {
        $query = $_SERVER'QUERY_STRING'];
        $vars = array();
        $second = array();
        foreach (explode('&', $query) as $pair) {
            list($key, $value) = explode('=', $pair);
            if('' == trim($value)){
                continue;
            }
            if (array_key_exists($key, $vars)) {
                if (!array_key_exists($key, $second))
                    $second$key]] .= $vars$key];
                $second$key]] = $value;
            } else {
                $vars$key] = urldecode($value);
            }
        }
        return array_merge($vars, $second);
    }

Ce qui donne

array (
  'param1' => '2549',
  'appname' => 
      array (
        0 => 'appName1',
        1 => 'appName2',
        2 => 'appName3',
        3 => 'appName4',
        4 => 'appName5',
  ),
  'apptype' => 'thetype',
  'idsess' => '1231324567980147dzeze55sd4',
  'action' => 'myaction',
);

Je ne trouvais pas de réponse satisfaisante sur Internet et j'avais besoin que si un paramètre étais seul, il ne soit pas dans un array de array.

En espérant que cela aide.

1 réponse


M2n
Réponse acceptée

J'ai vitte regarder ton poste et à mon avis, tu peux tester la taille de ton tableau à chaque "itération" de la boucle ou alors à la fin parcourir tes tabs et mettre de l'ordre dedans.

Ce que j'aurai fais:

if (array_key_exists($key, $vars)) {
                if (!array_key_exists($key, $second))
                    $second$key]] .= $vars$key];
                if(count($vars$key]) > 1) $second$key]] = $value; // Je pense que cette conditione st suffisante ...

            } else {
                $vars$key] = urldecode($value);
            }

J'espère que ca peut t'aider.