Pemboleh ubah yang diperlukan
Pemboleh ubah superglobal berikut diperlukan untuk mengetahui alamat URL halaman semasa.
Pemboleh ubah Superglobal | Tujuan |
---|---|
$ _SERVER ['HTTPS'] | Ia kembali pada jika protokol HTTPS digunakan dalam URL halaman semasa. |
$ _SERVER ['HTTP_HOST'] | Ia mengembalikan nama pelayan halaman semasa. |
$ _SERVER ['REQUEST_URI'] | Ia mengembalikan nama sumber yang diminta. |
$ _SERVER ['SERVER_PORT']] | Ia mengembalikan nombor port pelayan. |
$ _SERVER ['QUERY_STRING'] | Ia mengembalikan nilai rentetan pertanyaan jika ada di alamat URL halaman semasa. |
Contoh 1: Paparkan URL halaman semasa menggunakan pernyataan bersyarat
Contoh berikut menunjukkan bagaimana pernyataan bersyarat dapat digunakan untuk mendapatkan protokol yang digunakan dalam URL halaman semasa. Buat fail PHP dengan skrip berikut.
Nilai $ _SERVER ['HTTP_HOST'] digunakan untuk mendapatkan nama domain URL semasa. Nilai $ _SERVER ['REQUEST_URI'] digunakan untuk mendapatkan nama sumber yang diminta. terbitan () fungsi digunakan untuk memeriksa apakah $ _SERVER ['HTTPS'] adalah satu set atau tidak, dan jika ditetapkan, kemudian periksa nilai $ _SERVER ['HTTPS'] pada atau tidak. Seterusnya, nilai ketiga-tiga pemboleh ubah digabungkan dengan '//:' untuk mendapatkan URL penuh halaman semasa.
// Baca nama domain halaman semasa$ domain = $ _SERVER ['HTTP_HOST'];
// Baca sumber yang diminta
$ sumber = $ _SERVER ['REQUEST_URI'];
// Cari tahu protokol url semasa
jika (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS'] === 'on')
$ protokol = "https";
yang lain
$ protokol = "http";
// Gabungkan semua bahagian untuk mendapatkan alamat URL lengkap
$ url = $ protokol.": //".$ domain.sumber $;
// Cetak alamat URL halaman semasa
gema "
Alamat URL semasa
halaman adalah:
". $ url;?> Pengeluaran:
Output berikut akan muncul setelah menjalankan skrip dari pelayan. Nilai $ _SERVER ['HTTPS'] tidak pada untuk pelayan tempatan. Jadi output menunjukkan http protokol untuk URL semasa.
Contoh 2: Paparkan URL halaman semasa menggunakan operator ternary
Contoh berikut menunjukkan cara untuk mendapatkan URL penuh halaman semasa menggunakan operator ternary. Buat fail PHP dengan skrip berikut.
Sekiranya syarat tersebut digunakan dalam contoh sebelumnya untuk mengetahui protokol mana yang digunakan dalam URL halaman semasa. Tugas yang sama dilakukan dengan menggunakan operator ternary dalam skrip ini. terbitan () fungsi digunakan untuk memeriksa apakah $ _SERVER ['HTTPS'] adalah satu set atau tidak, dan jika nilai $ _SERVER ['HTTPS'] adalah pada, maka pengendali ternary akan mengembalikan HTTPS, jika tidak, ia akan mengembalikan HTTP. Bahagian lain dari URL diambil dan dicetak seperti contoh sebelumnya.
// Cari tahu protokol url semasa$ protokol = (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
== 'di' ? "https": "http");
// Baca nama domain halaman semasa
$ domain = $ _SERVER ['HTTP_HOST'];
// Baca sumber yang diminta
$ sumber = $ _SERVER ['REQUEST_URI'];
// Gabungkan semua bahagian untuk mendapatkan alamat URL lengkap
$ url = $ protokol.": //".$ domain.sumber $;
// Cetak alamat URL halaman semasa
gema "
Alamat URL halaman semasa adalah:
". $ url;?>
Pengeluaran:
Output berikut akan muncul setelah menjalankan skrip dari pelayan. Nilai $ _SERVER ['HTTPS'] tidak pada untuk pelayan tempatan. Jadi output menunjukkan protokol HTTP untuk URL semasa.
Contoh 3: Paparkan URL halaman semasa berdasarkan nombor port
Dalam dua contoh sebelumnya, nilai $ _SERVER ['HTTPS'] digunakan untuk mengetahui protokol URL halaman semasa, dan tidak ada rentetan pertanyaan yang digunakan dengan URL. Contoh berikut menunjukkan bagaimana pemboleh ubah $ _SERVER ['SERVER_PORT'] dapat digunakan untuk mengetahui protokol dan mengambil alamat URL lengkap dengan rentetan pertanyaan. Buat fail PHP dengan skrip berikut.
Di sini, banyak keadaan logik dan operator ternary digunakan untuk mengetahui protokolnya. Sekiranya nilai $ _SERVER ['HTTPS'] kosong atau ditetapkan ke mati, maka ia akan memeriksa nilai $ _SERVER ['SERVER_PORT'] untuk mengetahui protokol URL semasa. Pemboleh ubah $ _SERVER ['QUERY_STRING'] digunakan untuk mendapatkan semula nilai rentetan pertanyaan dari URL.
// Cari tahu protokol url semasa$ protokol = ((!kosong ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
!= 'mati') || $ _SERVER ['SERVER_PORT'] == 443) ? "https: //": "http: //";
// Baca nama domain halaman semasa
$ domain = $ _SERVER ['HTTP_HOST'];
// Baca sumber yang diminta
$ sumber = $ _SERVER ['REQUEST_URI'];
// Baca nilai rentetan pertanyaan
$ pertanyaan = $ _SERVER ['QUERY_STRING'];
// Gabungkan semua bahagian untuk mendapatkan alamat URL lengkap
$ url = $ protokol.$ domain.sumber $;
// Cetak alamat URL halaman semasa
gema "
Alamat URL lengkap halaman semasa adalah:
". $ url;// Cetak bahagian rentetan pertanyaan
gema "
Rentetan pertanyaan adalah:
". $ pertanyaan;?>
Pengeluaran:
Output berikut akan muncul setelah menjalankan skrip di atas dari pelayan tanpa rentetan pertanyaan. Tidak ada rentetan pertanyaan yang disediakan di URL. Jadi output menunjukkan rentetan pertanyaan kosong.
Output berikut akan muncul setelah menjalankan skrip di atas dari pelayan dengan rentetan pertanyaan. Output berikut menunjukkan alamat URL dengan rentetan pertanyaan dan rentetan pertanyaan secara berasingan.
Kesimpulannya
Kaedah yang berbeza untuk mendapatkan URL penuh halaman semasa ditunjukkan dalam tutorial ini dengan menggunakan pelbagai contoh. Cara untuk memisahkan URL dan rentetan pertanyaan juga ditunjukkan dalam tutorial ini. Mudah-mudahan, tutorial ini dapat membantu pembaca mengetahui cara membaca URL penuh halaman semasa menggunakan skrip PHP.