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

Bagaimana untuk menukar tatasusunan menjadi url dalam php

PHPz
Lepaskan: 2023-04-18 14:42:52
asal
789 orang telah melayarinya

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 ]]] )
Salin selepas log masuk

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;
?>
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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;
?>
Salin selepas log masuk

Hasil keluaran:

data%5B%5D=foo&data%5B%5D=bar&data%5B%5D=faz
Salin selepas log masuk
  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;
?>
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk
  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;
?>
Salin selepas log masuk

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
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan