Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah PHP_SELF, PATH_INFO, SCRIPT_NAME dan REQUEST_URI Berbeza dalam Menentukan Alamat Skrip?

Bagaimanakah PHP_SELF, PATH_INFO, SCRIPT_NAME dan REQUEST_URI Berbeza dalam Menentukan Alamat Skrip?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 06:48:02971semak imbas

How do PHP_SELF, PATH_INFO, SCRIPT_NAME, and REQUEST_URI Differ in Determining a Script's Address?

Menentukan Alamat Skrip dalam PHP: PHP_SELF, PATH_INFO, SCRIPT_NAME, REQUEST_URI

Apabila membangunkan aplikasi PHP, memahami perbezaan antara PHP_SELF, PATH_IN , SCRIPT_NAME dan REQUEST_URI adalah penting untuk menentukan alamat skrip dengan pasti.

PHP_SELF mewakili URL penuh skrip, termasuk rentetan pertanyaan. Dalam kebanyakan kes, ini adalah pilihan yang paling boleh dipercayai untuk mendapatkan semula alamat penuh skrip. Walau bagaimanapun, jika permintaan melalui arahan mod_rewrite, PHP_SELF mungkin tidak menggambarkan URL yang diminta sebenar.

PATH_INFO menyimpan bahagian URL selepas nama skrip. Maklumat ini tersedia apabila menggunakan mod_rewrite, tetapi ia mungkin kosong dalam situasi tertentu.

SCRIPT_NAME mengandungi nama fail sebenar skrip yang sedang dilaksanakan, tidak termasuk sebarang maklumat laluan. Tidak seperti PHP_SELF, SCRIPT_NAME tidak dipengaruhi oleh mod_rewrite.

REQUEST_URI menangkap URI permintaan lengkap, termasuk laluan, rentetan pertanyaan dan sebarang serpihan utama. Ia berguna apabila bekerja dengan pelayan proksi atau apabila berurusan dengan ubah hala.

Untuk menggambarkan perbezaan, berikut ialah beberapa contoh:

  • Contoh 1: Apabila menggunakan mod_rewrite untuk mengubah hala http://example.com/test.php/foo/bar ke http://example.com/index.php/test.php/foo/bar:

    • PHP_SELF: /test.php/foo/bar
    • SCRIPT_NAME: /test.php
    • PATH_INFO: /foo/bar
  • Contoh 2: Apabila menggunakan rentetan pertanyaan bukan kosong dalam http://example.com/test.php?foo=bar:

    • PHP_SELF: /test.php? foo=bar
    • SCRIPT_NAME: /test.php
    • REQUEST_URI: /test.php?foo=bar
  • Contoh 3: Apabila menggunakan mod_rewrite untuk mengubah hala http://example.com/test.php ke http://example.com/test2.php:

    • PHP_SELF: /test.php
    • SCRIPT_NAME: /test2.php
    • REQUEST_URI: /test.php

Dengan memahami perbezaan ini, anda boleh memilih pembolehubah yang paling sesuai untuk keperluan khusus anda, memastikan akses yang boleh dipercayai kepada alamat skrip, tanpa mengira konfigurasi pelayan web atau manipulasi URL.

Atas ialah kandungan terperinci Bagaimanakah PHP_SELF, PATH_INFO, SCRIPT_NAME dan REQUEST_URI Berbeza dalam Menentukan Alamat Skrip?. 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