web-dev-qa-db-fra.com

Générer une URL avec les paramètres d'un tableau

Je dois prendre un tableau comme ci-dessous:

$subids = Array
    (
        [s1] => one
        [s2] => two
        [s3] => three
        [s4] => four
        [s5] => five
        [s6] => six
    )

et générer une URL telle que http://example.com?s1=one&s2=two&s3=three=&s4=four&s5=five&s6=six

Tous les subid ne sont pas toujours définis, donc parfois s3 peut ne pas être défini, il ne devrait donc pas être ajouté à l'URL. De plus, quel que soit le premier identifiant, il doit avoir le? le précédant à la place de l'esperluette (&)

Donc si le tableau est juste:

$subids = Array
    (
        [s2] => two
        [s6] => six
    )

alors l'URL doit être http://example.com?s2=two&s6=six

J'ai les éléments suivants jusqu'à présent:

$ url = ' http://example.com '

    foreach ($subids AS $key => $value) {
        $result[$id]['url'] .= '&' . $key . '=' . $value;
    }

Cependant, je ne sais pas quel serait le meilleur moyen de l’annexer? au début de la première paire clé/valeur.

Je pense qu’il existe une fonction PHP pour l’aider mais je n’en trouve pas beaucoup. J’utilise Codeigniter si je peux utiliser quelque chose qui est fourni par CI.

52
Motive

Tout ce dont vous avez besoin est http_build_query :

$final = $url . "?" . http_build_query($subids);
118
Baba

Vous pouvez utiliser avec http_build_query() fonction. Exemple de php.net:

<?php
$data = array(
    'foo' => 'bar',
    'baz' => 'boom',
    'cow' => 'milk',
    'php' => 'hypertext processor',
);

echo http_build_query( $data ) . "\n";
echo http_build_query( $data, '', '&amp;' );
?>

Et sortez ces lignes:

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

Vous pouvez lire à partir de la source: http://www.php.net/manual/en/function.http-build-query.php

BTW, si vous utilisez avec WordPress, vous pouvez utiliser cette fonction: http://codex.wordpress.org/Function_Reference/add_query_arg

S'amuser. :)

16
Yakir Sitbon