Dalam pembangunan PHP, kadangkala ia perlu untuk menukar tatasusunan atau objek kepada parameter URL. Sebagai contoh, apabila kami menggunakan cURL untuk menghantar permintaan HTTP, kami perlu menukar parameter permintaan ke dalam format parameter URL. Mari belajar cara menukar objek tatasusunan kepada parameter URL dalam PHP.
Gunakan fungsi http_build_query untuk menukar tatasusunan PHP kepada rentetan parameter URL. Contoh kod adalah seperti berikut:
$params = array('name' => '张三', 'age' => 18); $queryString = http_build_query($params); echo $queryString; // 输出:name=%E5%BC%A0%E4%B8%89&age=18
Parameter pertama fungsi http_build_query ialah tatasusunan, parameter kedua ialah awalan, dan parameter ketiga ialah pembatas. Jika tiada awalan dan pembatas, kedua-dua parameter ini tidak perlu dimasukkan.
Untuk objek PHP, kita boleh menukarnya kepada tatasusunan dahulu, dan kemudian menggunakan fungsi http_build_query untuk menukarnya kepada parameter URL. Contoh kod adalah seperti berikut:
class User { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $user = new User('张三', 18); $params = (array)$user; // 将对象转换成数组 $queryString = http_build_query($params); echo $queryString; // 输出:name=%E5%BC%A0%E4%B8%89&age=18
Apabila menggunakan fungsi http_build_query untuk menukar, anda perlu memberi perhatian khusus sama ada parameter mengandungi aksara khas . Contohnya, aksara seperti ruang, +, /, dsb. perlu dilepaskan ke dalam format pengekodan khusus dalam parameter URL. Contoh kod adalah seperti berikut:
$params = array('name' => '张三 王五', 'age' => 18); $queryString = http_build_query($params); echo $queryString; // 输出:name=%E5%BC%A0%E4%B8%89+%E7%8E%8B%E4%BA%94&age=18
Dalam contoh di atas, parameter mengandungi ruang dan fungsi http_build_query melepaskannya ke dalam tanda tambah (+). Jika anda perlu menukar kepada format pengekodan UTF-8, anda boleh menggunakan fungsi urlencode:
$params = array('name' => '张三 王五', 'age' => 18); $queryString = http_build_query($params); $queryString = str_replace('+', '%20', $queryString); // 将加号替换成UTF-8编码格式的空格 echo $queryString; // 输出:name=%E5%BC%A0%E4%B8%89%20%E7%8E%8B%E4%BA%94&age=18
Ringkasan:
Melalui contoh di atas, kami telah mempelajari cara menukar objek tatasusunan kepada parameter URL dalam PHP. Secara khusus, kita boleh menggunakan fungsi http_build_query untuk menukar tatasusunan PHP kepada rentetan parameter URL, atau kita boleh menukar objek itu kepada tatasusunan dahulu dan kemudian menggunakan fungsi ini untuk menukarnya. Pada masa yang sama, apabila memproses aksara khas, anda perlu mempertimbangkan sama ada anda perlu menggunakan fungsi urlencode untuk penukaran pengekodan.
Atas ialah kandungan terperinci Tukar objek tatasusunan php kepada parameter url. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!