PHP phân tích cú pháp url hiện tại

Chào mừng bạn đến với hướng dẫn nhanh về cách lấy URL đầy đủ và các phần URL trong PHP. Bạn cần lấy đường dẫn, cơ sở, tên miền hoặc chuỗi truy vấn từ URL? . Nhưng buồn thay trong PHP, mọi thứ hơi… lạc hậu

  • Để có được URL đầy đủ trong PHP – <?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY3
  • Để xóa chuỗi truy vấn khỏi URL đầy đủ – <?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY4

Điều đó sẽ bao gồm những điều cơ bản, nhưng nếu bạn cần “các phần URL” cụ thể hơn – Hãy đọc tiếp để biết thêm ví dụ

ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn ví dụ khi bắt đầu hướng dẫn này, vì vậy bạn không cần phải sao chép-dán mọi thứ… Hoặc nếu bạn chỉ muốn đi sâu vào

 

 

TLDR – TRANG TRÌNH BÀY NHANH

Tải xuống & Ghi chú

Khái niệm cơ bản về URL

URL PHP

Bit bổ sung & liên kết

Kết thúc

 

TẢI XUỐNG & LƯU Ý

Đầu tiên, đây là liên kết tải xuống mã ví dụ như đã hứa

 

GHI CHÚ NHANH

Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với cả thế giới… Nếu bạn cần câu trả lời gấp, vui lòng xem danh sách các trang web của tôi để được trợ giúp về lập trình

 

MÃ VÍ DỤ TẢI XUỐNG

Nhấp vào đây để tải xuống mã ví dụ, tôi đã phát hành mã này theo giấy phép MIT, vì vậy vui lòng xây dựng trên mã đó hoặc sử dụng mã đó trong dự án của riêng bạn

 

 

CƠ BẢN về URL

Được rồi, chúng ta hãy bắt đầu với một số phần URL cơ bản “nhàm chán”. Đúng, công cụ này rất quan trọng nếu bạn là người mới

 

CÁC PHẦN URL KHÁC NHAU

Bây giờ bạn đã biết các phần riêng lẻ của một URL, bây giờ chúng ta hãy xem cách lấy URL đầy đủ và “các phần chung” bằng cách sử dụng PHP

 

1) CÁC PHẦN URL TRONG PHP

1-url-phần. php

<?php // (A) PROTOCOL echo isset($_SERVER["HTTPS"]) ? "//" : "//"; // (B) HOST echo $_SERVER["HTTP_HOST"]; // (C) PORT echo $_SERVER["SERVER_PORT"]; // (D) PATH + FILE + QUERY echo $_SERVER["REQUEST_URI"]; // (E) QUERY echo $_SERVER["QUERY_STRING"]; print_r($_GET);

Tất cả các phần URL có thể được lấy từ biến <?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY5 trong PHP

Phần URL của biến & Ví dụ<?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY0Điều này đúng nếu HTTPS được sử dụng.
https. // trang web. com. 443/đường dẫn/tệp. php?p=123<?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY1Tên máy chủ.
https. // trang web. com . 443/đường dẫn/tệp. php?p=123<?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY2Số cổng.
https. //Địa điểm. com. 443 /đường dẫn/đường dẫn/tệp. php?p=123<?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY3Đường dẫn, tệp và truy vấn.
https. //Địa điểm. com. 443 /đường dẫn/tệp. php?p=123 <?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY4Chỉ chuỗi truy vấn.
https. //Địa điểm. com. 443/đường dẫn/tệp. php ?p=123

 

 

2) NHẬN URL ĐẦY ĐỦ

2-đầy đủ-url. php

<?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY

Đây gần như là “phiên bản mở rộng” của đoạn giới thiệu, được đóng gói thành một chức năng để bạn tiện theo dõi

 

3) CÁC PHẦN URL THÔNG DỤNG

Đối với “các phần còn lại” không có trong <?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY5, chúng tôi sẽ cần phải tự trộn và kết hợp. Dưới đây là một vài trong số những cái phổ biến

 

GIAO THỨC và MÁY CHỦ

3 phần. php

// (A) PROTOCOL + DOMAIN $host = isset($_SERVER["HTTPS"]) ? "//" : "//" . $_SERVER["HTTP_HOST"] ; echo $host;

https. //Địa điểm. com /đường dẫn/tệp. php?p=123

 

 

CHỈ ĐƯỜNG DẪN

3 phần. php

________số 8

https. //Địa điểm. com/ đường dẫn /tệp. php?p=123

 

CHỈ TÊN TỆP

3 phần. php

// (C) FILENAME ONLY // USE BASENAME() TO GET THE FILE + STRIP QUERY STRING $file = basename($_SERVER["REQUEST_URI"], "?". $_SERVER["QUERY_STRING"]); echo $file;

https. //Địa điểm. com/đường dẫn/ tệp. php ?p=123

 

ĐƯỜNG DẪN VỚI TÊN TỆP

3 phần. php

<?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY0

https. //Địa điểm. com /đường dẫn/tệp. php ?p=123

 

THÊM) URL PARSE

4-phân tích cú pháp. php

<?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY1

Dành cho các bạn có chuỗi URL từ đâu đó – Có thể dùng hàm <?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY6 để lấy nhanh tất cả các phần

 

 

BIT BỔ SUNG & LIÊN KẾT

Đó là tất cả những gì dành cho hướng dẫn và đây là một phần nhỏ về một số tính năng bổ sung và liên kết có thể hữu ích cho bạn

 

THẾ NÀO VỀ Băm?

Bạn muốn lấy phần băm của URL? . //Địa điểm. com/đường dẫn/tệp. php #section . Đáng buồn thay, nó không được tìm thấy ở đâu trong <?php // (A) GETFULLURL() : GETS THE FULL URL // $QUERY - INCLUDE QUERY STRING? function getFullURL ($query=false) { // (A1) THE PROTOCOL $url = (isset($_SERVER["HTTPS"]) ? "//" : "//"); // (A2) HOST $url .= $_SERVER["HTTP_HOST"]; // (A3) ADD THE PORT ONLY IF IT IS NOT HTTP/HTTPS if ($_SERVER["SERVER_PORT"] != 80 && $_SERVER["SERVER_PORT"] != 443) { $url .= ":" . $_SERVER["SERVER_PORT"]; } // (A4) THE PATH, FILE NAME, AND QUERY $url .= $_SERVER["REQUEST_URI"]; // (A5) INCLUDE QUERY STRING? if ($query===false) { $url = strtok($url, "?"); } // (A6) THE FULL URL return $url; } // (B) GET CURRENT URL echo getFullURL(true); // WITH QUERY echo getFullURL(); // WITHOUT QUERY5. Đặt cược tốt nhất của bạn là sử dụng Javascript để thay thế.

 

LIÊN KẾT và THAM KHẢO

  • Nhận các phần URL bằng Javascript – Code Boxx
  • $_SERVER Superglobal – PHP
  • Phân tích cú pháp URL – PHP

 

BẢNG CHEAT INFOGRAPHIC

Cảm ơn bạn đã đọc, và chúng tôi đã đi đến cuối. Tôi hy vọng rằng nó đã giúp bạn hiểu rõ hơn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc

Làm cách nào để phân tích cú pháp URL hiện tại 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. .

Chủ đề