Rumah >pembangunan bahagian belakang >masalah PHP >Bolehkah tatasusunan diluluskan melalui kaedah get dalam php?

Bolehkah tatasusunan diluluskan melalui kaedah get dalam php?

青灯夜游
青灯夜游asal
2023-01-29 19:31:463773semak imbas

Ya. URL boleh menghantar tatasusunan bersekutu atau tatasusunan subskrip dalam PHP, anda boleh menggunakan fungsi http_build_query() untuk menghantar tatasusunan dalam URL melalui kaedah dapatkan. http_build_query() digunakan untuk menjana rentetan pertanyaan yang dikodkan URL daripada tatasusunan yang berkaitan (atau diindeks), dengan sintaks "http_build_query($query_data,$numeric_prefix,$arg_separator,$enc_type)".

Bolehkah tatasusunan diluluskan melalui kaedah get dalam php?

Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP8, komputer DELL G3

Gunakan kaedah dapatkan di bawah PHP Melepasi tatasusunan dalam URL

Anda boleh menghantar tatasusunan bersekutu atau tatasusunan subskrip dalam URL.

Cara paling mudah ialah menggunakan fungsi http_build_query() yang disertakan dengan PHP

$parameters = [
'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'
];

// 这里两种数组的方式能够进行混用定义,没有问题

http_build_query($data);
// 注意这里的结果会将参数中的特殊字符进行转义形成最终的结果查询串

还有就是直接进行参数拼接

Mula lulus parameter dengan pengisytiharan ? dan gunakan & untuk menyambung setiap parameter

cth.

https://www.baidu.com?a=1&b=2&c=3

Jika anda ingin menghantar tatasusunan, anda boleh menggunakan kaedah berikut:

https://www.baidu.com?a[0]=0&a[1]=1&a[2]=2&a[3]=3&a[4]=4
https://www.baidu.com?a[q]=0&a[w]=1&a[e]=2&a[r]=3&a[t]=4

Nota Tanda kurung segi empat di sini perlu dilepaskan, jika tidak, ralat penghantaran mungkin berlaku.

Pengetahuan lanjutan: Pengenalan kepada http_build_query()

Fungsi http_build_query() ialah fungsi terbina dalam dalam PHP, digunakan untuk mendapatkan semula data daripada tatasusunan persatuan (atau indeks) untuk menjana rentetan pertanyaan berkod URL.

Penggunaan:

string http_build_query( $query_data, $numeric_prefix, $arg_separator, $enc_type = PHP_QUERY_RFC1738 )

Parameter: Fungsi ini menerima empat parameter yang diterangkan di atas dan di bawah

  • $ query_data: Parameter ini memegang tatasusunan atau objek yang mengandungi sifat berikut:
    • Ia boleh menjadi tatasusunan satu dimensi atau tatasusunan berbilang dimensi.
    • Jika $query_data ialah objek, hanya sifat awam digabungkan ke dalam hasilnya.
  • $numeric_prefix: Gunakan parameter ini jika pengindeksan berangka digunakan dalam tatasusunan asas, ia hanya akan mendahului indeks berangka elemen dalam tatasusunan asas.
  • $arg_separator:Ia digunakan untuk memisahkan hujah, tetapi ini boleh ditindih dengan menyatakan hujah ini.
  • $enc_type:Nilai lalai ialah PHP_QUERY_RFC1738.

Nilai pulangan: Ia mengembalikan rentetan yang dikodkan URL.

Program contoh berikut direka bentuk untuk menggambarkan fungsi http_build_query() dalam PHP:

Program 1:

<?php 
$info = array( 
    'sudo' => 'placement', 
    'CPP' => 'course', 
    'FORK' => 'C', 
); 
  
echo http_build_query($info) . "#"; 
echo http_build_query($info, '', '&'); 
  
?>

Output:

sudo=placement&CPP=course&FORK=C#sudo=placement&CPP=course&FORK=C

Program 2:

<?php 
$info = array('geeks', 'gfg' => 'sudo', 'placement' => 'hypertext processor'); 
  
echo http_build_query($info) . "$"; 
echo http_build_query($info, 'myvar_'); 
?>

Output:

0=geeks&gfg=sudo&placement=hypertext+processor$myvar_0=geeks&gfg=sudo&placement=hypertext+processor

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bolehkah tatasusunan diluluskan melalui kaedah get dalam php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn