(PHP 5, PHP 7)
http_build_query — URL kodlamalı sorgu dizgesi üretir
$form_verisi
[, string $sayısal_önek
[, string $ayraç
]] )Belirtilen ilişkisel (veya indisli) diziden bir URL kodlamalı dizge üretir.
form_verisi
Özellikleri içeren bir dizi veya nesne belirtilebilir.
Belirtilen dizi tek boyutlu bir dizi olabileceği gibi çok boyutlu iç içe diziler içeren bir dizi de olabilir.
sayısal_önek
Temel dizide sayısal indisler kullanılmışsa sayısal indislerin her birinin önüne bu değiştirgede 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ç
Bu değiştirgede bir ayraç belirtilmezse değiştirge ayracı olarak arg_separator.output yönergesinde belirtilen ayraç kullanılır.
URL kodlamalı bir dizge döner.
Sürüm: | Açıklama |
---|---|
5.1.2 |
ayraç değiştirgesi eklendi.
|
5.1.3 | Köşeli ayraçlar öncelendi. |
Örnek 1 - http_build_query() basit kullanımı
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data);
// foo=bar&baz=boom&cow=milk&php=hypertext+processor
echo http_build_query($data, '', '&');
// foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>
Örnek 2 - Sayısal indisli elemanlarla 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, 'myvar_');
?>
Yukarıdaki örneğin çıktısı:
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
Ö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 myClass {
var $foo;
var $baz;
function myClass() {
$this->foo = 'bar';
$this->baz = 'boom';
}
}
$data = new myClass();
echo http_build_query($data); // foo=bar&baz=boom
?>