Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar tatasusunan menjadi url dalam php
Dengan pembangunan Internet yang berterusan, kami semakin bergantung pada rangkaian untuk menghantar dan bertukar data. Sama ada menyemak imbas web, melakukan e-dagang atau membuat pembayaran dalam talian, kita semua perlu menggunakan URL untuk menghantar dan mendapatkan maklumat yang diperlukan.
Dalam PHP, kita selalunya perlu menukar tatasusunan kepada URL untuk dihantar dan diproses melalui parameter URL. Dalam artikel ini, kami akan menerangkan cara menukar tatasusunan PHP kepada URL dan menyediakan kod sampel praktikal untuk rujukan.
Kaedah penukaran
Dalam PHP, kita boleh menggunakan fungsi http_build_query() untuk menukar tatasusunan kepada format URL. Fungsi http_build_query() menukar tatasusunan kepada pengekodan URL, menghasilkan rentetan yang mengandungi semua pasangan nilai kunci parameter. Berikut ialah sintaks fungsi http_build_query():
string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
Fungsi ini mempunyai empat parameter:
Kod Contoh
Berikut ialah contoh kod untuk menukar tatasusunan kepada URL:
<?php $parameters = array( 'username' => 'myusername', 'password' => 'mypassword', 'city' => 'New York', 'state' => 'NY', ); $url_parameters = http_build_query($parameters); $url = 'http://www.example.com/login?' . $url_parameters; echo $url; ?>
Dalam contoh ini kami mentakrifkan tatasusunan bersekutu $parameters , yang mengandungi beberapa pasangan nilai kunci. Kemudian, kami menggunakan fungsi http_build_query() untuk menukar tatasusunan kepada rentetan berkod URL dan menyimpannya ke pembolehubah $url_parameters.
Akhir sekali, kami menambah $url_parameters pada URL, menjana URL akhir dan menggunakan fungsi gema untuk mengeluarkannya ke skrin.
Hasil keluaran:
http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY
Ini adalah salah satu kaedah paling asas untuk menukar tatasusunan PHP kepada URL.
Aplikasi Sambungan
Sekarang kita telah melihat cara menukar tatasusunan PHP kepada URL. Seterusnya, kami akan membincangkan beberapa kegunaan yang lebih maju untuk membantu anda memahami aplikasinya dengan lebih baik.
Kita boleh menggunakan parameter numeric_prefix kedua untuk menambah awalan pada nama parameter. Contoh berikut memberi awalan nama parameter dalam tatasusunan dengan "data[ ]".
<?php $data = array( 1 => 'foo', 2 => 'bar', 3 => 'faz' ); $query = http_build_query($data, 'data[]'); echo $query; ?>
Hasil keluaran:
data%5B%5D=foo&data%5B%5D=bar&data%5B%5D=faz
Jika anda mahukan lebih kawalan ke atas parameter dalam URL, sebelum menjana URL , anda boleh menggunakan fungsi urlencode() untuk mengekod nilai parameter. Contohnya:
<?php $parameters = array( 'username' => 'myusername', 'password' => 'mypassword', 'city' => urlencode('New York'), 'state' => urlencode('NY'), ); $url_parameters = http_build_query($parameters); $url = 'http://www.example.com/login?' . $url_parameters; echo $url; ?>
Dalam contoh ini, kami menggunakan fungsi urlencode() untuk mengekod "New York" dan "NY" untuk memastikan tiada aksara haram muncul dalam URL. URL akhir akan kelihatan seperti ini:
http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY
Jika tatasusunan anda mengandungi subarray berbilang dimensi, anda boleh menggunakan rekursi untuk menukar keseluruhan tatasusunan kepada URL. Contohnya:
<?php $parameters = array( 'username' => 'myusername', 'password' => 'mypassword', 'address' => array( 'city' => 'New York', 'state' => 'NY', 'zip' => '10001' ) ); function build_query_string_recursive(array $array, $prefix = null) { $query = array(); foreach($array as $key => $value) { $new_key = is_null($prefix) ? $key : sprintf('%s[%s]', $prefix, $key); if(is_array($value)) { $query[] = build_query_string_recursive($value, $new_key); } else { $query[] = sprintf('%s=%s', urlencode($new_key), urlencode($value)); } } return implode('&', $query); } $url_parameters = build_query_string_recursive($parameters); $url = 'http://www.example.com/login?' . $url_parameters; echo $url; ?>
Dalam contoh ini, kami menggunakan fungsi build_query_string_recursive() untuk menukar keseluruhan tatasusunan kepada URL. Fungsi ini menggunakan rekursi untuk memproses tatasusunan berbilang dimensi, memastikan semua pasangan nilai kunci ditukar dengan betul kepada format berkod URL.
Akhir sekali, kami menambah $url_parameters pada URL, menjana URL akhir dan menggunakan fungsi gema untuk mengeluarkannya ke skrin.
Output:
http://www.example.com/login?username=myusername&password=mypassword&address[city]=New+York&address[state]=NY&address[zip]=10001
Kesimpulan
Menukar tatasusunan PHP kepada URL ialah helah yang sangat berguna untuk menghantar dan memproses data. Dalam artikel ini, kami memperkenalkan fungsi http_build_query() dengan beberapa contoh praktikal untuk rujukan.
Sama ada anda perlu menukar tatasusunan ringkas atau tatasusunan berbilang dimensi kepada URL, contoh ini boleh membantu anda menyelesaikan tugas dengan jayanya. Terima kasih kerana membaca, semoga artikel ini bermanfaat!
Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan menjadi url dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!