Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan PHP kepada rentetan URI

Bagaimana untuk menukar tatasusunan PHP kepada rentetan URI

PHPz
PHPzasal
2023-04-20 15:02:38492semak imbas

Dalam pembangunan web, kita selalunya perlu menukar tatasusunan PHP kepada URI. URI (Uniform Resource Identifier) ​​atau URL (Uniform Resource Locator) ialah pengecam rentetan yang digunakan untuk menunjukkan sumber tertentu. Dalam kebanyakan kes, kita perlu menukar tatasusunan PHP ke dalam format URI untuk dihantar ke API atau untuk digunakan dalam halaman web.

Dalam artikel ini, kami akan memperkenalkan cara menukar tatasusunan PHP kepada rentetan URI untuk mencapai fungsi seperti menghantar data, pertanyaan carian dan banyak lagi.

  1. Menggunakan http_build_query

Menggunakan fungsi http_build_query ialah cara paling mudah untuk menukar tatasusunan PHP kepada format URI. Fungsi ini menukar tatasusunan PHP kepada rentetan yang dikodkan URI dan mengembalikan rentetan ini:

<?php
$array = array(&#39;name&#39; => 'John Smith', 'age' => 34);
$queryString = http_build_query($array);

echo $queryString;

Output:

name=John+Smith&age=34

Dalam contoh di atas, kami menukar rentetan yang mengandungi nama dan The PHP susunan bersekutu maklumat umur ditukar kepada format URI. Menggunakan fungsi http_build_query kita boleh memastikan bahawa hasilnya ialah rentetan yang dikodkan URI yang betul.

  1. Laksanakan URLEncode sendiri

Jika anda tidak mahu menggunakan fungsi terbina dalam http_build_query, anda boleh menukar tatasusunan kepada format URI secara manual. Dalam kes ini, kita boleh menggunakan fungsi urlencode PHP terbina dalam untuk mengekod rentetan dalam URI:

<?php
$array = array(&#39;name&#39; => 'John Smith', 'age' => 34);
$queryString = '';

foreach($array as $key => $value){
    $queryString .= urlencode($key) . '=' . urlencode($value) . '&';
}

// 去掉结尾的 &
$queryString = rtrim($queryString, '&');

echo $queryString;

Output:

name=John+Smith&age=34

Dalam contoh di atas, kami menggunakan gelung foreach melalui kunci dan nilai dalam tatasusunan dan kemudian mengekodnya menggunakan fungsi urlencode. Kami menambah tanda sama dan ampersand antara setiap kunci dan nilai, dan menggunakan fungsi rtrim untuk mengeluarkan ampersand pada hujung rentetan.

  1. Diformat menggunakan PHP_QUERY_RFC3986

Dalam sesetengah kes, kita perlu menggunakan pengekodan URI faks, iaitu format RFC 3986. Jika kita ingin menggunakan format ini, kita perlu menetapkan parameter kedua kepada PHP_QUERY_RFC3986 apabila memanggil fungsi http_build_query:

<?php
$array = array(&#39;name&#39; => 'John Smith', 'age' => 34);
$queryString = http_build_query($array, '', '&', PHP_QUERY_RFC3986);

echo $queryString;

Output:

name=John%20Smith&age=34

Dalam contoh di atas, kami Gunakan fungsi http_build_query untuk menukar tatasusunan kepada rentetan dalam format berkod URI RFC 3986. Kita dapat melihat bahawa ruang dikodkan sebagai %20 dan tanda tambah tidak digunakan. Ini ialah kaedah yang dinyatakan dalam RFC 3986.

Ringkasan

Dalam artikel ini, kami memperkenalkan tiga cara untuk menukar tatasusunan PHP kepada URI. Menggunakan fungsi http_build_query ialah pendekatan yang paling mudah dan biasa, sambil melaksanakan fungsi secara manual dan menggunakan format RFC 3986 memberikan lebih fleksibiliti dan kawalan. Sama ada cara, kami boleh menggunakan teknik ini untuk menjana rentetan URI yang diformat dengan betul untuk mencapai tujuan perniagaan kami.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan PHP kepada rentetan URI. 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