http_build_query

(PHP 5, PHP 7)

http_build_queryURL kodlamalı sorgu dizgesi üretir

Açıklama

http_build_query ( array $form_verisi [, string $sayısal_önek [, string $ayraç ]] ) : string

Belirtilen ilişkisel (veya indisli) diziden bir URL kodlamalı dizge üretir.

Değiştirgeler

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.

Dönen Değerler

URL kodlamalı bir dizge döner.

Sürüm Bilgisi

Sürüm: Açıklama
5.1.2 ayraç değiştirgesi eklendi.
5.1.3 Köşeli ayraçlar öncelendi.

Örnekler

Ö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'''&amp;'); 
    
// foo=bar&amp;baz=boom&amp;cow=milk&amp;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

?>

Ayrıca Bakınız

  • parse_str() - Dizge içindeki değişkenleri çözümler
  • parse_url() - Bir URL'yi bileşenlerine ayırır
  • urlencode() - Dizgeye URL kodlaması uygular
  • array_walk() - Bir dizinin her üyesine kullanıcı tanımlı bir işlevi uygular