Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mendapatkan URL Asas dengan Cekap dalam PHP?

Bagaimanakah Saya Boleh Mendapatkan URL Asas dengan Cekap dalam PHP?

DDD
DDDasal
2024-12-01 17:09:11228semak imbas

How Can I Efficiently Obtain the Base URL in PHP?

Mendapatkan URL Asas dengan PHP

Dalam persekitaran pembangunan web seperti PHP, mendapatkan URL asas boleh menjadi penting untuk pelbagai tujuan. Artikel ini meneroka cara untuk mencapai tugas ini dengan berkesan.

Untuk mendapatkan semula URL asas, pendekatan yang disyorkan ialah menggunakan pembolehubah yang dipratentukan $_SERVER. Dengan menggabungkan kekunci SERVER_NAME dan REQUEST_URI, kaedah ini menyediakan cara yang boleh dipercayai dan tepat untuk membina URL asas. Berikut ialah contoh pelaksanaan:

<?php echo "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; ?>

Kod mudah ini menggabungkan protokol (http://), nama pelayan (127.0.0.1) dan meminta URI (/test_website/) untuk menghasilkan URL asas: http ://127.0.0.1/test_website/.

Untuk situasi di mana HTTPS terlibat, fungsi diubah suai dipanggil url() boleh bekerja:

function url(){
  return sprintf(
    "%s://%s%s",
    isset($_SERVER['HTTPS']) &amp;&amp; $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
    $_SERVER['SERVER_NAME'],
    $_SERVER['REQUEST_URI']
  );
}
echo url();
#=> http://127.0.0.1/foo

Untuk memastikan penggunaan kekunci SERVER_NAME yang boleh dipercayai, adalah penting untuk mengkonfigurasi Apache dengan sewajarnya. Coretan konfigurasi berikut menunjukkan persediaan ini:

<VirtualHost *>
    ServerName example.com
    UseCanonicalName on
</VirtualHost>

Selain itu, jika bergantung pada kunci HTTP_HOST, berhati-hati harus diambil untuk membersihkan input pengguna sebelum digunakan. Fungsi parse_url PHP menawarkan contoh komprehensif pengendalian data sedemikian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan URL Asas dengan Cekap dalam PHP?. 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