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 & 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ố 8https. //Đị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 QUERY0https. //Đị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 QUERY1Dà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