Truy xuất URL đầy đủ bằng PHP

Retrieve Full Url Php



Hai loại biến toàn cục có thể được sử dụng trong PHP: biến superglobal và biến do người dùng định nghĩa. $ _SERVER là một biến mảng superglobal được sử dụng để truy xuất đường dẫn đầy đủ của trang hiện tại. Giao thức (HTTP hoặc HTTPS) của URL cũng được yêu cầu để có được URL đầy đủ của trang. Nếu như $ _SERVER [‘HTTPS’] trả lại 'trên', thì HTTPS sẽ được sử dụng với địa chỉ URL, nếu không, HTTP sẽ được sử dụng. Cách truy xuất địa chỉ URL đầy đủ của trang hiện tại bằng cách sử dụng $ _SERVER mảng đã được giải thích trong hướng dẫn này.

Các biến cần thiết

Các biến superglobal sau đây được yêu cầu để tìm ra địa chỉ URL của trang hiện tại.







Biến Superglobal Mục đích
$ _SERVER [‘HTTPS’] Nó trở lại trên nếu giao thức HTTPS được sử dụng trong URL của trang hiện tại.
$ _SERVER [‘HTTP_HOST’] Nó trả về tên của máy chủ của trang hiện tại.
$ _SERVER [‘REQUEST_URI’] Nó trả về tên tài nguyên được yêu cầu.
$ _SERVER [‘SERVER_PORT’] Nó trả về số cổng của máy chủ.
$ _SERVER [‘QUERY_STRING’] Nó trả về giá trị chuỗi truy vấn nếu nó tồn tại trong địa chỉ URL của trang hiện tại.

Ví dụ 1: Hiển thị URL của trang hiện tại bằng cách sử dụng câu lệnh điều kiện

Ví dụ sau đây cho thấy cách sử dụng câu lệnh điều kiện để lấy giao thức được sử dụng trong URL của trang hiện tại. Tạo một tệp PHP với tập lệnh sau.



Giá trị của $ _SERVER [‘HTTP_HOST’] được sử dụng để lấy tên miền của URL hiện tại. Giá trị của $ _SERVER [‘REQUEST_URI’] được sử dụng để lấy tên của tài nguyên được yêu cầu. Không còn) được sử dụng để kiểm tra xem $ _SERVER [‘HTTPS’] có phải là một bộ hay không và nếu được đặt, hãy kiểm tra giá trị của $ _SERVER [‘HTTPS’] có phải là trên hay không. Tiếp theo, giá trị của ba biến này được kết hợp với ‘//:’ để truy xuất URL đầy đủ của trang hiện tại.




// Đọc tên miền của trang hiện tại
$ miền = $ _SERVER['HTTP_HOST'];
// Đọc tài nguyên được yêu cầu
$ tài nguyên = $ _SERVER['REQUEST_URI'];
// Tìm hiểu giao thức của url hiện tại
nếu như( Không còn ($ _SERVER['HTTPS']) && $ _SERVER['HTTPS'] === 'trên')
giao thức $ = 'https';
khác
giao thức $ = 'http';

// Kết hợp tất cả các phần để có được địa chỉ URL đầy đủ
$ url = giao thức $.': //'.$ miền.$ tài nguyên;
// In địa chỉ URL của trang hiện tại
quăng đi '

Địa chỉ URL của hiện tại
trang là:

'
. $ url;?>

Đầu ra:





Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh từ máy chủ. Giá trị của $ _SERVER [‘HTTPS’] không phải là trên cho máy chủ cục bộ. Vì vậy, đầu ra cho thấy http giao thức cho URL hiện tại.



Ví dụ 2: Hiển thị URL của trang hiện tại bằng toán tử bậc ba

Ví dụ sau đây cho thấy cách để lấy URL đầy đủ của trang hiện tại bằng cách sử dụng toán tử bậc ba. Tạo một tệp PHP với tập lệnh sau.

Nếu như điều kiện được sử dụng trong ví dụ trước để tìm ra giao thức nào được sử dụng trong URL của trang hiện tại. Tác vụ tương tự được thực hiện bằng cách sử dụng toán tử bậc ba trong tập lệnh này. Không còn) được sử dụng để kiểm tra xem $ _SERVER [‘HTTPS’] có phải là một tập hợp hay không và giá trị của $ _SERVER [‘HTTPS’] là trên, thì toán tử bậc ba sẽ trả về HTTPS, nếu không nó sẽ trả về HTTP. Các phần khác của URL được truy xuất và in giống như ví dụ trước.


// Tìm hiểu giao thức của url hiện tại
giao thức $ = ( Không còn ($ _SERVER['HTTPS']) && $ _SERVER['HTTPS']
== 'trên'?'https' : 'http');
// Đọc tên miền của trang hiện tại
$ miền = $ _SERVER['HTTP_HOST'];
// Đọc tài nguyên được yêu cầu
$ tài nguyên = $ _SERVER['REQUEST_URI'];
// Kết hợp tất cả các phần để có được địa chỉ URL đầy đủ
$ url = giao thức $.': //'.$ miền.$ tài nguyên;
// In địa chỉ URL của trang hiện tại
quăng đi '

Địa chỉ URL của trang hiện tại là:

'
. $ url;
?>

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh từ máy chủ. Giá trị của $ _SERVER [‘HTTPS’] không phải là trên cho máy chủ cục bộ. Vì vậy, đầu ra hiển thị giao thức HTTP cho URL hiện tại.

Ví dụ 3: Hiển thị URL của trang hiện tại dựa trên số cổng

Trong hai ví dụ trước, giá trị $ _SERVER [‘HTTPS’] được sử dụng để tìm ra giao thức của URL hiện tại của trang và không có chuỗi truy vấn nào được sử dụng với URL. Ví dụ sau cho thấy cách biến $ _SERVER [‘SERVER_PORT’] có thể được sử dụng để tìm ra giao thức và truy xuất địa chỉ URL đầy đủ với chuỗi truy vấn. Tạo một tệp PHP với tập lệnh sau.

Ở đây, nhiều điều kiện logic và toán tử bậc ba được sử dụng để tìm ra giao thức. Nếu giá trị của $ _SERVER [‘HTTPS’] trống hoặc được đặt thành tắt, thì nó sẽ kiểm tra giá trị của $ _SERVER [‘SERVER_PORT’] để tìm ra giao thức của URL hiện tại. Biến $ _SERVER [‘QUERY_STRING’] được sử dụng để truy xuất giá trị chuỗi truy vấn từ URL.


// Tìm hiểu giao thức của url hiện tại
giao thức $ = ((! trống ($ _SERVER['HTTPS']) && $ _SERVER['HTTPS']
! = 'tắt') || $ _SERVER['CỔNG MÁY CHỦ'] == 443)?'https: //' : 'http: //';
// Đọc tên miền của trang hiện tại
$ miền = $ _SERVER['HTTP_HOST'];
// Đọc tài nguyên được yêu cầu
$ tài nguyên = $ _SERVER['REQUEST_URI'];
// Đọc giá trị chuỗi truy vấn
truy vấn $ = $ _SERVER['CHUỖI TRUY VẤN'];
// Kết hợp tất cả các phần để có được địa chỉ URL đầy đủ
$ url = giao thức $.$ miền.$ tài nguyên;
// In địa chỉ URL của trang hiện tại
quăng đi '

Địa chỉ URL đầy đủ của trang hiện tại là:

'
. $ url;
// In phần chuỗi truy vấn
quăng đi '

Chuỗi truy vấn là:

'
. truy vấn $;
?>

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi thực thi tập lệnh trên từ máy chủ mà không có bất kỳ chuỗi truy vấn nào. Không có chuỗi truy vấn nào được cung cấp trong URL. Vì vậy, đầu ra hiển thị chuỗi truy vấn trống.

Kết quả sau sẽ xuất hiện sau khi thực thi tập lệnh trên từ máy chủ với chuỗi truy vấn. Đầu ra sau đây hiển thị địa chỉ URL với chuỗi truy vấn và chuỗi truy vấn riêng biệt.

Phần kết luận

Các cách khác nhau để truy xuất URL đầy đủ của trang hiện tại được hiển thị trong hướng dẫn này bằng cách sử dụng các ví dụ khác nhau. Cách tách URL và chuỗi truy vấn cũng được hiển thị trong hướng dẫn này. Hy vọng rằng hướng dẫn này sẽ giúp bạn đọc biết cách đọc toàn bộ URL của trang hiện tại bằng PHP script.