Maison  >  Article  >  développement back-end  >  Comment convertir un tableau en URL en php

Comment convertir un tableau en URL en php

PHPz
PHPzoriginal
2023-04-18 14:07:09681parcourir

Avec le développement continu d'Internet, nous comptons de plus en plus sur le réseau pour transmettre et échanger des données. Qu'il s'agisse de naviguer sur le Web, de faire du commerce électronique ou d'effectuer des paiements en ligne, nous avons tous besoin d'utiliser des URL pour transmettre et obtenir les informations nécessaires.

En PHP, nous avons souvent besoin de convertir des tableaux en URL pour les transmettre et les traiter via les paramètres d'URL. Dans cet article, nous expliquerons comment convertir un tableau PHP en URL et fournirons un exemple de code pratique pour référence.

Méthode de conversion

En PHP, nous pouvons utiliser la fonction http_build_query() pour convertir le tableau au format URL. La fonction http_build_query() convertit le tableau en codage URL, générant une chaîne contenant toutes les paires clé-valeur de paramètres. Voici la syntaxe de la fonction http_build_query() :

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

Cette fonction a quatre paramètres :

  • query_data : un paramètre obligatoire Les données à convertir en URL peuvent être un tableau associatif.
  • numeric_prefix : Paramètre facultatif, si ce paramètre est défini sur true, il ajoutera automatiquement un préfixe au nom de la clé. Par défaut, le préfixe est "parameters[]".
  • arg_separator : Paramètre facultatif, séparateur entre les paramètres, la valeur par défaut est "&".
  • enc_type : paramètre facultatif, type d'encodage, la valeur par défaut est PHP_QUERY_RFC1738. Si ce paramètre est défini sur PHP_QUERY_RFC3986, le type d'encodage RFC3986 sera utilisé.

Exemple de code

Voici un exemple de code pour convertir un tableau en URL :

<?php
$parameters = array(
    &#39;username&#39; => 'myusername',
    'password' => 'mypassword',
    'city' => 'New York',
    'state' => 'NY',
);

$url_parameters = http_build_query($parameters);

$url = 'http://www.example.com/login?' . $url_parameters;

echo $url;
?>

Dans cet exemple, nous définissons un tableau associatif $parameters, qui contient des paires clé-valeur. Ensuite, nous utilisons la fonction http_build_query() pour convertir le tableau en une chaîne codée en URL et l'enregistrer dans la variable $url_parameters.

Enfin, nous ajoutons $url_parameters à l'URL, générons l'URL finale et utilisons la fonction echo pour l'afficher à l'écran.

Résultat de sortie :

http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY

C'est l'une des méthodes les plus élémentaires pour convertir un tableau PHP en URL.

Applications étendues

Nous avons maintenant vu comment convertir un tableau PHP en URL. Nous aborderons ensuite quelques utilisations plus avancées pour vous aider à mieux comprendre ses applications.

  1. Prefix

Nous pouvons utiliser le deuxième paramètre numeric_prefix pour ajouter un préfixe au nom du paramètre. L'exemple suivant préfixe les noms de paramètres dans le tableau avec "data[ ]".

<?php
$data = array(
    1 => 'foo',
    2 => 'bar',
    3 => 'faz'
);

$query = http_build_query($data, 'data[]');

echo $query;
?>

Résultat de sortie :

data%5B%5D=foo&data%5B%5D=bar&data%5B%5D=faz
  1. urlencode()

Si vous souhaitez plus de contrôle sur les paramètres de l'URL, vous pouvez utiliser la fonction urlencode() pour encoder les valeurs des paramètres avant de générer l'URL. Par exemple :

<?php
$parameters = array(
    &#39;username&#39; => 'myusername',
    'password' => 'mypassword',
    'city' => urlencode('New York'),
    'state' => urlencode('NY'),
);

$url_parameters = http_build_query($parameters);

$url = 'http://www.example.com/login?' . $url_parameters;

echo $url;
?>

Dans cet exemple, nous utilisons la fonction urlencode() pour encoder "New York" et "NY" afin de garantir qu'aucun caractère illégal n'apparaisse dans l'URL. L'URL finale ressemblera à ceci :

http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY
  1. Tableaux avancés

Si votre tableau contient des sous-tableaux multidimensionnels, vous pouvez utiliser la récursivité pour convertir l'intégralité du tableau en URL. Par exemple :

<?php
$parameters = array(
    &#39;username&#39; => 'myusername',
    'password' => 'mypassword',
    'address' => array(
        'city' => 'New York',
        'state' => 'NY',
        'zip' => '10001'
    )
);

function build_query_string_recursive(array $array, $prefix = null) {

    $query = array();

    foreach($array as $key => $value) {
        $new_key = is_null($prefix) ? $key : sprintf('%s[%s]', $prefix, $key);

        if(is_array($value)) {
            $query[] = build_query_string_recursive($value, $new_key);
        } else {
            $query[] = sprintf('%s=%s', urlencode($new_key), urlencode($value));
        }
    }

    return implode('&', $query);
}

$url_parameters = build_query_string_recursive($parameters);

$url = 'http://www.example.com/login?' . $url_parameters;

echo $url;
?>

Dans cet exemple, nous utilisons la fonction build_query_string_recursive() pour convertir l'intégralité du tableau en URL. Cette fonction utilise la récursion pour traiter les tableaux multidimensionnels, garantissant que toutes les paires clé-valeur sont correctement converties au format codé en URL.

Enfin, nous ajoutons $url_parameters à l'URL, générons l'URL finale et utilisons la fonction echo pour l'afficher à l'écran.

Sortie :

http://www.example.com/login?username=myusername&password=mypassword&address[city]=New+York&address[state]=NY&address[zip]=10001

Conclusion

La conversion de tableaux PHP en URL est une astuce très utile pour transmettre et traiter des données. Dans cet article, nous présentons la fonction http_build_query() avec quelques exemples pratiques pour référence.

Que vous ayez besoin de convertir un tableau simple ou un tableau multidimensionnel en URL, ces exemples peuvent vous aider à terminer la tâche avec succès. Merci d’avoir lu et j’espère que cet article vous a été utile !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn