http_build_query
(PHP 5, PHP 7)
http_build_query — Génère une chaîne de requête en encodage URL
Description
$query_data
[, string $numeric_prefix
[, string $arg_separator
[, int $enc_type
= PHP_QUERY_RFC1738
]]] )
Génère une chaîne en encodage URL, construite à partir du tableau
indexé ou associatif query_data
.
Liste de paramètres
-
query_data
-
Peut être un tableau ou un objet contenant des propriétés.
Si
query_data
est un tableau, alors ce peut être un tableau à une ou plusieurs dimensions.Si
query_data
est un objet, alors seuls les attributs publics seront utilisés dans le résultat. -
numeric_prefix
-
Si des indices numériques sont utilisés dans le tableau de base et que
numeric_prefix
est fourni, il sera utilisé pour préfixer les noms des index pour les éléments du tableau de base seulement.Cela permet de générer des noms de variables valides, si les données sont ensuite décodées par PHP ou une application CGI.
-
arg_separator
-
arg_separator.output est utilisée pour séparer les arguments mais peut être modifiée en spécifiant ce paramètre.
-
enc_type
-
Par défaut, vaut
PHP_QUERY_RFC1738
.Si
enc_type
vautPHP_QUERY_RFC1738
, alors l'encodage est effectué conformément à la » RFC 1738 et les espaces du type de média application/x-www-form-urlencoded, qui est impacté par ce choix, seront encodés sous la forme d'un signe plus (+).Si
enc_type
vautPHP_QUERY_RFC3986
, alors l'encodage est effectué conformément à la » RFC 3986, et les espaces seront encodés en signe pourcent (%20).
Historique
Version | Description |
---|---|
5.4.0 |
Le paramètre enc_type a été ajouté.
|
5.1.3 | Les crochets sont échappés. |
5.1.2 |
Le paramètre arg_separator a été ajouté.
|
Exemples
Exemple #1 Utilisation simple de http_build_query()
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&');
?>
L'exemple ci-dessus va afficher :
foo=bar&baz=boom&cow=milk&php=hypertext+processor foo=bar&baz=boom&cow=milk&php=hypertext+processor
Exemple #2 http_build_query() avec tableau indexé
<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');
echo http_build_query($data) . "\n";
echo http_build_query($data, 'myvar_');
?>
L'exemple ci-dessus va afficher :
0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
Exemple #3 http_build_query() avec tableau complexe
<?php
$data = array('user'=>array('name'=>'Bob Smith',
'age'=>47,
'sex'=>'M',
'dob'=>'5/12/1956'),
'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
'children'=>array('bobby'=>array('age'=>12,
'sex'=>'M'),
'sally'=>array('age'=>8,
'sex'=>'F')),
'CEO');
echo http_build_query($data, 'flags_');
?>
cet exemple va afficher : (sur plusieurs lignes pour la lisibilité)
user%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M& user%5Bdob%5D=5%2F12%2F1956&pastimes%5B0%5D=golf&pastimes%5B1%5D=opera& pastimes%5B2%5D=poker&pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12& children%5Bbobby%5D%5Bsex%5D=M&children%5Bsally%5D%5Bage%5D=8& children%5Bsally%5D%5Bsex%5D=F&flags_0=CEO
Note:
Seuls les éléments indexés numériquement ("CEO") dans le tableau de base sont préfixés. Les autres indices numériques à d'autres niveaux n'ont pas besoin de l'être pour avoir des noms valides.
Exemple #4 Utilisation de http_build_query() avec un objet
<?php
class parentClass {
public $pub = 'publicParent';
protected $prot = 'protectedParent';
private $priv = 'privateParent';
public $pub_bar = Null;
protected $prot_bar = Null;
private $priv_bar = Null;
public function __construct(){
$this->pub_bar = new childClass();
$this->prot_bar = new childClass();
$this->priv_bar = new childClass();
}
}
class childClass {
public $pub = 'publicChild';
protected $prot = 'protectedChild';
private $priv = 'privateChild';
}
$parent = new parentClass();
echo http_build_query($parent);
?>
L'exemple ci-dessus va afficher :
pub=publicParent&pub_bar%5Bpub%5D=publicChild
Voir aussi
- parse_str() - Analyse une chaîne de caractères d'une variable
- parse_url() - Analyse une URL et retourne ses composants
- urlencode() - Encode une chaîne en URL
- array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau
Version en cache
24/11/2024 18:16:59 Cette version de la page est en cache (à la date du 24/11/2024 18:16:59) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.http-build-query.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.