http_build_query

(PHP 5)

http_build_queryGénère une chaîne de requête en encodage URL

Description

string http_build_query ( mixed $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 tant que le paramètre arg_separator n'est pas fourni.

enc_type

Par défaut, vaut PHP_QUERY_RFC1738.

Si enc_type vaut PHP_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 vaut PHP_QUERY_RFC3986, alors l'encodage est effectué conformément à la » RFC 3986, et les espaces seront encodés en signe pourcent (%20).

Valeurs de retour

Retourne une chaîne de caractères encodée URL.

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, '', '&amp;');

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

echo http_build_query($data) . "\n";
echo http_build_query($data, 'myvar_');
?>
<?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_');
?>
<?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

LoadingChargement en cours