array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.http-build-query.php', 1 => 'http_build_query', ), 'up' => array ( 0 => 'ref.url.php', 1 => 'URL İşlevleri', ), 'prev' => array ( 0 => 'function.get-meta-tags.php', 1 => 'get_meta_tags', ), 'next' => array ( 0 => 'function.parse-url.php', 1 => 'parse_url', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/url/functions/http-build-query.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
http_build_query — URL kodlamalı sorgu dizgesi üretir
$veri
,$sayısal_önek
= "",$ayraç
= null
,$kodlama_türü
= PHP_QUERY_RFC1738
Belirtilen ilişkisel (veya indisli) diziden bir URL kodlamalı dizge üretir.
veri
veri
bir dizi ise tek boyutlu basit bir yapı
veya bir diziler dizisi olabilir (dönüşte diğer dizileri içerebilir).
data
bir nesne ise sonuca sadece public
özellikler dahil edilir.
sayısal_önek
Temel dizide sayısal indisler kullanılmışsa sayısal indislerin her birinin önüne burada belirtilen değer getirilir ve bu sadece temel dizinin indislerine uygulanır.
Bunun böyle yapılmasının sebebi, verinin daha sonra PHP veya başka bir CGI uygulaması tarafından URL kodlaması çözüldüğünde elde geçerli (meşru) değişken isimleri kalmasını sağlamaktır.
ayraç
Burada bir ayraç belirtilmezse veya null
belirtilirse ayraç olarak
arg_separator.output
yönergesinde belirtilen ayraç kullanılır.
kodlama_türü
PHP_QUERY_RFC1738
öntanımlıdır.
kodlama_türü
olarak
PHP_QUERY_RFC1738
atanmışsa, kodlama boşlukların
artı (+
) işaretleri olarak kodlandığı
» RFC 1738 ve
application/x-www-form-urlencoded
ortam türüne
göre uygulanır.
kodlama_türü
olarak
PHP_QUERY_RFC3986
atanmışsa, kodlama,
boşlukların yüzdeli (%20
) kodlandığı
» RFC 3986'ya göre uygulanır.
URL kodlamalı bir dizge döner.
Sürüm: | Açıklama |
---|---|
8.0.0 |
ayraç artık null olabiliyor.
|
Örnek 1 - http_build_query() basit kullanımı
<?php
$data = array(
'foo' => 'bar',
'baz' => 'boom',
'cow' => 'milk',
'null' => null,
'php' => 'hypertext processor'
);
echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&');
?>
Yukarıdaki örneğin çıktısı:
foo=bar&baz=boom&cow=milk&php=hypertext+processor foo=bar&baz=boom&cow=milk&php=hypertext+processor
Örnek 2 - Sayısal indisli elemanlarla http_build_query()
<?php
$data = array('foo', 'bar', 'baz', null, 'boom', 'cow' => 'milk', 'php' => 'hypertext processor');
echo http_build_query($data) . "\n";
echo http_build_query($data, 'myvar_');
?>
Yukarıdaki örneğin çıktısı:
0=foo&1=bar&2=baz&4=boom&cow=milk&php=hypertext+processor myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_4=boom&cow=milk&php=hypertext+processor
Örnek 3 - http_build_query() ve çok boyutlu diziler
<?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_');
?>
Örneğin çıktısı: (okunabilirlik için satır katlanmıştır)
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
Bilginize:
Sadece, temel dizi içindeki sayısal indisli "CEO" elemanı bir önek alır. Alt dizilerdeki diğer sayısal indislerin meşru değişken ismi olabilmesi için bir dizge ile öncelenmeleri gerekmez.
Örnek 4 - http_build_query() ve bir nesne
<?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);
?>
Yukarıdaki örneğin çıktısı:
pub=publicParent&pub_bar%5Bpub%5D=publicChild