Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan menjadi url dalam php

Bagaimana untuk menukar tatasusunan menjadi url dalam php

PHPz
PHPzasal
2023-04-18 14:07:09681semak imbas

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:

  • query_data: parameter yang diperlukan, data yang akan ditukar kepada URL , yang boleh menjadi tatasusunan Bersekutu.
  • numeric_prefix: Parameter pilihan, jika parameter ini ditetapkan kepada benar, ia akan menambah awalan pada nama kunci secara automatik. Secara lalai, awalan ialah "parameter[]".
  • arg_separator: Parameter pilihan, pemisah antara parameter, nilai lalai ialah "&".
  • enc_type: Parameter pilihan, jenis pengekodan, lalai ialah PHP_QUERY_RFC1738. Jika parameter ini ditetapkan kepada PHP_QUERY_RFC3986, jenis pengekodan RFC3986 akan digunakan.

Kod Contoh

Berikut ialah contoh kod untuk menukar tatasusunan kepada URL:

<?php
$parameters = array(
    &#39;username&#39; => '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.

  1. Awalan

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
  1. urlencode()

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(
    &#39;username&#39; => '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
  1. Anasusunan Terperinci

Jika tatasusunan anda mengandungi subarray berbilang dimensi, anda boleh menggunakan rekursi untuk menukar keseluruhan tatasusunan kepada URL. Contohnya:

<?php
$parameters = array(
    &#39;username&#39; => '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!

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