http_build_query

(PHP 5, PHP 7, PHP 8)

http_build_queryURL kodlamalı sorgu dizgesi üretir

Açıklama

http_build_query(
    array|object$veri,
    string$sayısal_önek = "",
    ?string$ayraç = null,
    int$kodlama_türü = PHP_QUERY_RFC1738
): string

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

Bağımsız Değişkenler

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.

Dönen Değerler

URL kodlamalı bir dizge döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0ayraç artık null olabiliyor.

Örnekler

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

?>

Yukarıdaki örneğin çıktısı:

foo=bar&baz=boom&cow=milk&php=hypertext+processor 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', 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

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
To Top