Nhận URL PHP hiện tại với các tham số

Ghi chú. Hầu như tất cả các máy chủ web hiện đại với PHP đều hỗ trợ các biến $_SERVER được sử dụng, bạn cần biết. “Các mục trong mảng này được tạo bởi máy chủ web. Không có gì đảm bảo rằng mọi máy chủ web sẽ cung cấp bất kỳ thứ nào trong số này. ”  Xem hướng dẫn sử dụng PHP $_SERVER.  

Một mảng kết hợp gồm các biến được chuyển đến tập lệnh hiện tại thông qua các tham số URL (còn gọi là. chuỗi truy vấn). Lưu ý rằng mảng không chỉ được điền cho các yêu cầu GET mà còn cho tất cả các yêu cầu có chuỗi truy vấn

ví dụ

Ví dụ #1 $_GET ví dụ

echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';
?>

Giả sử người dùng đã nhập http. //thí dụ. com/?name=Hannes

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như

ghi chú

Ghi chú

Đây là biến 'siêu toàn cầu' hoặc toàn cầu tự động. Điều này đơn giản có nghĩa là nó có sẵn trong tất cả các phạm vi trong toàn bộ tập lệnh. Không cần phải làm $variable toàn cầu;

Hướng dẫn giới thiệu cách lấy URL đầy đủ hiện tại bằng ngôn ngữ lập trình PHP. Có thể có nhiều trường hợp sử dụng để lấy URL đầy đủ của PHP. Chúng tôi phải hiển thị nội dung của trang web dựa trên thông số truy vấn. Chúng tôi có thể cần chuyển hướng hoặc làm mới toàn bộ trang. Do đó, một URL đầy đủ có thể có giá trị thiết yếu khi nói đến lập trình web

Ở đây, chúng ta sẽ thảo luận về các cách khác nhau để lấy URL đầy đủ trong lập trình PHP

Nói chung, có một vài bước mà chúng ta phải biết để có được URL hoàn chỉnh của trang hiện đang chạy, được đưa ra dưới đây

  • Chúng ta cần tạo một biến PHP sẽ lưu trữ URL ở định dạng chuỗi
  • Chúng tôi cần kiểm tra xem máy chủ đã bật HTTPS chưa. Nếu có, thì chúng ta cần nối thêm HTTPS vào chuỗi URL. Nếu HTTPS không được bật, chúng tôi cần nối thêm HTTP vào chuỗi URL
  • Chúng ta cũng cần thêm ký hiệu :// vào URL
  • Chúng ta cần thêm tên HTTP_HOST của máy chủ. Tên HTTP_HOST là máy chủ mà chúng tôi đã yêu cầu, e. g. www.google.com, www.exampledomain.com, v.v.
  • Chúng ta cần thêm REQUEST_URI vào chuỗi URL. REQUEST_URI là tài nguyên mà chúng tôi đã yêu cầu, e. g. /index.php, v.v.

Bây giờ, chúng ta thảo luận về một số phương pháp hiệu quả nhất để lấy URL đầy đủ hiện tại trong hệ sinh thái lập trình PHP

Giải pháp này khá đơn giản. Chúng ta có thể sử dụng hàm tích hợp PHP có tên 

$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
0. Phương pháp này hoạt động cho cả HTTP và HTTP

Chức năng này được sử dụng để xây dựng một URL. Nó chấp nhận tất cả bốn tham số cùng nhau

  • $link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    
    2. Tham số này đại diện cho URL ở dạng chuỗi hoặc mảng kết hợp. Nó trả về giá trị tương tự như parse_url()
  • $link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    
    3. Tham số này giống như đối số đầu tiên
  • $link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    
    4. Nó là một bitmask của hằng số HTTP_URL nhị phân
  • $link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    
    5. Nếu thông số này được đặt, nó sẽ chứa các phần của URL đã soạn như 
    $link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    
    6 trả về

Nhìn chung, phương thức này trả về URL mới dưới dạng một chuỗi nếu thành công, ngược lại 

$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
7 khi thất bại

Một cách khác là sử dụng biến toàn cục có tên 

$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
8. _
$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
0 là một biến tích hợp sẵn của PHP được sử dụng để lấy URL của trang hiện tại. Nó cũng là một biến siêu toàn cầu. Do đó, nó luôn có sẵn trong mọi phạm vi

Chúng ta chỉ cần chuyển tham số 

$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
1 cho biến như trong ví dụ bên dưới

Thí dụ

$link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

  • $link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
    
    2 đại diện cho tên máy chủ hoặc tên miền như https. //www. ngăn xếp. com/
  • $link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
    
    3 đại diện cho URI như 
    $link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
    
    4

Đây là một định dạng mã cứng rõ ràng khác để lấy URL hiện tại trong PHP

Biến Toàn cục 

$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
5 thể hiện trạng thái của HTTPS. Do đó, chúng ta có thể sử dụng nó bên trong hàm
$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
7 để kiểm tra xem HTTPS có tồn tại hay không. Điều này sẽ giúp chúng tôi biết liệu HTTPS có được bật trong một URL hay không. Trong khi đó, bằng cách kiểm tra giá trị của
$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
5, chúng tôi có thể quyết định có thêm “https” vào URL hay không

Cả hai ví dụ đều cho thấy việc phát hiện HTTPS. Ví dụ dưới đây là định dạng dài

$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

Hoặc bạn có thể sử dụng định dạng ngắn như trong ví dụ bên dưới

$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']

Nhận URL hiện tại bao gồm các tham số trong PHP

Để có được URL tổng thể bao gồm đường dẫn, tham số và chuỗi truy vấn, chúng ta có thể sử dụng 

$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
0 như minh họa trong ví dụ bên dưới

$all_in_address_bar = http_build_url();

Phần kết luận

Hướng dẫn này trình bày một số cách hiệu quả nhất để lấy URL hiện tại trong lập trình PHP. Các ví dụ chắc chắn sẽ giúp bạn hiểu định dạng, cơ chế và cú pháp được sử dụng. Kỹ thuật được sử dụng nhiều nhất để lấy URL hiện tại là sử dụng biến siêu toàn cục 

$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
0. Sử dụng cái này, bạn có toàn quyền kiểm soát định dạng cú pháp. Tuy nhiên, kỹ thuật hơi phức tạp so với những cái khác. Bây giờ, tùy thuộc vào bạn quyết định phương pháp lấy URL hiện tại nào phù hợp nhất dựa trên kịch bản lập trình PHP của bạn. Có thể có các trường hợp sử dụng khác nhau và hiệu quả trong việc sử dụng một trường hợp cụ thể. Tùy chọn tốt nhất có thể là thử từng cái trong số chúng và chọn cái linh hoạt và hiệu quả nhất cho kịch bản lập trình của bạn

Làm cách nào bạn có thể lấy URL hiện tại với tất cả các tham số trong PHP?

Để lấy URL của trang hiện tại, PHP cung cấp một biến siêu toàn cầu $_SERVER . $_SERVER là một biến có sẵn của PHP, được sử dụng để lấy URL của trang hiện tại. Nó là một biến siêu toàn cầu, có nghĩa là nó luôn có sẵn trong mọi phạm vi.

Làm cách nào bạn có thể lấy URL hiện tại với tất cả các tham số?

Để lấy thông số URL, có 2 cách. .
Bằng cách sử dụng Đối tượng URLSearchParams
Bằng cách sử dụng Tách và truy cập từng cặp tham số

Làm cách nào để kiểm tra URL hiện tại trong PHP?

Ví dụ 2. Lấy url của trang web bằng cách sử dụng $_SERVER['HTTP_HOST'] sẽ trả về tiêu đề máy chủ từ yêu cầu hiện tại.

Làm cách nào để nhận URL hiện tại không có tham số trong PHP?

Làm cách nào để lấy URL hiện tại không bao gồm các tham số bằng PHP? . ? $current_url = $_SERVER['REQUEST_URI'];