PHP ialah bahasa skrip sebelah pelayan yang biasa digunakan yang memainkan peranan penting dalam pembangunan tapak web. Apabila menggunakan PHP untuk membangunkan tapak web, fungsi lompat ubah hala sering digunakan, tetapi kadangkala kita dapati kod PHP tidak dapat melaksanakan lompatan ubah hala secara normal. Artikel ini akan menjawabnya secara terperinci.
Lompat ubah hala merujuk kepada fungsi mengubah hala halaman web yang diminta oleh pengguna ke URL lain secara automatik untuk merealisasikan lompatan halaman. Dalam PHP, lompatan ubah hala boleh dilaksanakan melalui fungsi header(). Fungsi header() ialah fungsi terbina dalam PHP, digunakan untuk menghantar pengepala HTTP asli, termasuk kod status, Jenis Kandungan dan maklumat lain.
Dalam PHP, terdapat dua cara untuk melaksanakan lompatan ubah hala Satu ialah menggunakan fungsi header() untuk melompat . yang lain adalah menggunakan tag meta untuk melompat.
2.1 Gunakan fungsi header() untuk melompat
Fungsi header() boleh melaksanakan fungsi lompat ubah hala dan perlu menghantar maklumat pengepala HTTP yang berbeza mengikut situasi.
Kod sampel adalah seperti berikut:
<?php header("Location: http://www.example.com/"); exit(); ?>
Dalam kod di atas, fungsi header() melepasi URL yang diubah hala dalam bentuk parameter, seperti "http://www .example.com/" , dan kemudian panggil fungsi exit() untuk menghentikan pelaksanaan skrip semasa untuk memastikan pengalihan berkuat kuasa.
Perlu diambil perhatian bahawa tiada maklumat, termasuk teg HTML, ruang, baris baharu, dsb., boleh dikeluarkan kepada klien sebelum menggunakan fungsi header() untuk melompat.
2.2 Gunakan tag meta untuk melompat
Selain menggunakan fungsi header() untuk melompat, anda juga boleh menggunakan tag meta dalam HTML untuk melompat.
Kod sampel adalah seperti berikut:
<!DOCTYPE html> <html> <head> <meta http-equiv="refresh" content="0;URL='http://www.example.com/'" /> </head> <body> </body> </html>
Dalam kod di atas, teg meta menggunakan atribut kandungan untuk menentukan URL untuk melompat ke, dan menetapkan pemasa nilai ialah 0, ia bermakna Jump.
Perlu diambil perhatian bahawa apabila menggunakan tag meta untuk melompat, halaman tersebut akan kekal untuk tempoh masa sebelum melompat ke URL yang ditentukan, yang mungkin mengakibatkan pengalaman pengguna yang lemah.
Pengalihan PHP kadangkala gagal melonjak, yang disebabkan terutamanya oleh sebab berikut :
3.1 Maklumat telah output kepada klien sebelum ini
Apabila menggunakan fungsi header() untuk melompat, anda mesti memastikan tiada maklumat dikeluarkan kepada klien sebelum memanggil fungsi header(), jika tidak Akan menyebabkan pengalihan gagal.
Kod sampel adalah seperti berikut:
<!DOCTYPE html> <html> <head> <?php echo "Hello World!"; header("Location: http://www.example.com/"); exit(); ?> </head> <body> </body> </html>
Dalam kod di atas, pernyataan gema pertama kali digunakan untuk mengeluarkan teks "Hello World!" ) fungsi dipanggil untuk melompat, kerana Maklumat telah dikeluarkan kepada pelanggan, menyebabkan pengalihan gagal.
3.2 URL Salah
Jika URL yang diubah hala tidak betul, pengalihan akan gagal. Pada masa ini, anda perlu menyemak sama ada URL itu betul dan sama ada ia mengandungi protokol dan nama hos yang betul.
Kod sampel adalah seperti berikut:
<?php header("Location: example.com"); exit(); ?>
Dalam kod di atas, URL yang diubah hala tidak menyatakan protokol dan nama hos, menyebabkan ubah hala gagal.
Lompatan ubah hala PHP ialah fungsi yang sangat biasa dan anda perlu memberi perhatian kepada beberapa butiran semasa penggunaan. Pertama sekali, apabila memanggil fungsi header() untuk melompat, anda perlu memastikan bahawa tiada maklumat dikeluarkan kepada klien sebelum panggilan kedua, apabila menetapkan URL lompat, anda perlu memastikan bahawa URL adalah betul, termasuk protokol; , nama hos dan maklumat lain. Akhir sekali, adalah disyorkan untuk menggunakan fungsi header() untuk melompat, kerana ia lebih fleksibel dan boleh dipercayai daripada meta tag melompat.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah yang php redirect tidak boleh melompat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!