Bagaimana untuk menyelesaikan masalah parameter bercelaru dalam php get

PHPz
Lepaskan: 2023-04-24 14:40:20
asal
681 orang telah melayarinya

Semasa pembangunan PHP, kami sering menggunakan kaedah GET untuk mendapatkan parameter dalam URL. Walau bagaimanapun, kadangkala kami mendapati bahawa parameter yang diluluskan dalam URL adalah bercelaru. Keadaan ini mungkin menjejaskan penghuraian dan penggunaan parameter kami, jadi masalah ini perlu diselesaikan secepat mungkin.

Punca masalah

Mungkin terdapat banyak sebab untuk watak bercelaru, tetapi terdapat terutamanya situasi berikut:

  1. Tetapan pengekodan lalai pelayan ialah tidak betul

Skrip PHP berjalan pada bahagian pelayan Jika tetapan pengekodan lalai pelayan tidak betul, masalah parameter GET yang bercelaru mudah berlaku. Biasanya, pengekodan lalai pelayan hendaklah UTF-8 kerana ia menyokong set aksara berbilang bahasa dan lebih selaras dengan keperluan aplikasi Internet moden.

  1. Format pengekodan URL tidak konsisten

Dalam kaedah GET, parameter akan dilampirkan pada URL dan dihantar sebagai rentetan pertanyaan. Parameter ini biasanya dikodkan ke dalam format khas supaya ralat tidak berlaku semasa penghantaran. Terdapat dua format pengekodan biasa: UTF-8 dan GBK. Jika format pengekodan pelanggan dan pelayan tidak konsisten, ia boleh menyebabkan parameter GET bercelaru.

  1. Ralat penghuraian kod atau ralat tetapan set aksara

Kadangkala, masalah kod bercelaru mungkin disebabkan oleh ralat penghuraian kod atau ralat tetapan set aksara. Contohnya, dalam skrip PHP, kami boleh menggunakan fungsi mb_convert_encoding() untuk melaksanakan penukaran set aksara. Jika parameter fungsi ditetapkan dengan tidak betul, ia boleh menyebabkan parameter GET bercelaru.

Penyelesaian

Terdapat banyak cara untuk menyelesaikan masalah parameter GET yang bercelaru, dan kita boleh memilih kaedah yang sepadan mengikut situasi sebenar.

  1. Tetapkan pengekodan lalai kepada UTF-8

Dalam skrip PHP, kita boleh menggunakan pengepala fungsi() untuk menetapkan format pengekodan halaman. Contohnya, untuk menetapkan format pengekodan halaman kepada UTF-8, kodnya adalah seperti berikut:

<?php
header("Content-Type:text/html;charset=UTF-8");
?>
Salin selepas log masuk
  1. Pengalihan parameter URL

Jika format pengekodan daripada pelanggan dan pelayan tidak konsisten , kami boleh menukar kod parameter yang diluluskan dalam skrip PHP. Fungsi yang biasa digunakan termasuk urlencode() dan urldecode(). Contohnya, untuk menukar parameter yang diluluskan ke dalam format UTF-8, kodnya adalah seperti berikut:

<?php
$name = $_GET[&#39;name&#39;];
$name = urldecode($name);
$name = mb_convert_encoding($name, "UTF-8", "GBK");
?>
Salin selepas log masuk

Selepas kod di atas menyahkod parameter URL menggunakan urldecode(), kemudian gunakan fungsi mb_convert_encoding() untuk tukar set aksara ke dalam format pengekodan GBK Tukar kepada format UTF-8.

  1. Tambah parameter terus ke URL

Apabila menghantar parameter menggunakan kaedah GET, kami boleh menambah parameter terus ke URL dan mengekodnya. Sebagai contoh, tetapkan nilai nama parameter kepada "ujian" dan kodnya adalah seperti berikut:

http://example.com/index.php?name=%E6%B5%8B%E8%AF%95
Salin selepas log masuk

Dalam kod di atas, %E6%B5%8B%E8%AF%95 ialah perkataan "ujian" dalam UTF- Perwakilan heksadesimal dalam 8 format pengekodan.

Ringkasan

Kaedah GET ialah kaedah permintaan biasa protokol HTTP dan sering digunakan untuk mendapatkan data daripada pelayan. Dalam pembangunan sebenar, kami sering menggunakan kaedah GET untuk mendapatkan parameter dalam URL. Walau bagaimanapun, disebabkan oleh pelbagai sebab, kadangkala parameter ini akan bercelaru, menjejaskan penggunaan kami. Oleh itu, kita harus belajar cara menangani parameter GET yang bercelaru untuk memastikan program kita berjalan dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah parameter bercelaru dalam php get. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!