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"]) ? "https://" : "http://");
    
      // (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
    3
  • Để 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"]) ? "https://" : "http://");
    
      // (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
    4

Đ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

PHP phân tích cú pháp url hiện tại
Tải xuống & Ghi chú

PHP phân tích cú pháp url hiện tại
Khái niệm cơ bản về URL

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

PHP phân tích cú pháp url hiện tại
Bit bổ sung & liên kết

PHP phân tích cú pháp url hiện tại
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"]) ? "https://" : "http://";

// (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"]) ? "https://" : "http://");

  // (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
5 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"]) ? "https://" : "http://");

  // (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
0Đ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"]) ? "https://" : "http://");

  // (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
1Tê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"]) ? "https://" : "http://");

  // (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
2Số 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"]) ? "https://" : "http://");

  // (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
3Đườ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"]) ? "https://" : "http://");

  // (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
4Chỉ 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"]) ? "https://" : "http://");

  // (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"]) ? "https://" : "http://");

  // (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
5, 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"]) ? "https://" : "http://"
      . $_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"]) ? "https://" : "http://");

  // (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
0

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"]) ? "https://" : "http://");

  // (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
1

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"]) ? "https://" : "http://");

  // (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
6 để 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"]) ? "https://" : "http://");

  // (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
5. Đặ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. .
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'bật')
// Nối host(tên miền, ip) vào URL

Làm cách nào để phân tích các tham số URL trong PHP?

Các tham số từ một chuỗi URL có thể được truy xuất trong PHP bằng cách sử dụng các hàm parse_url() và parse_str() . Ghi chú. URL trang và các tham số được phân tách bằng dấu ? . hàm parse_url(). Hàm parse_url() được sử dụng để trả về các thành phần của URL bằng cách phân tích cú pháp URL đó.

Làm cách nào để bao gồm một URL trong PHP?

Tùy chọn PHP allow_url_include thường cho phép lập trình viên bao gồm () một tệp từ xa (dưới dạng mã PHP) bằng cách sử dụng URL thay vì đường dẫn tệp cục bộ

Làm cách nào để lấy URL cơ sở trong PHP?

Có thể truy xuất URL cơ sở từ một chuỗi bằng hàm PHP parse_url() . Đoạn mã sau cho biết cách lấy URL cơ sở từ chuỗi URL bằng PHP. PHP_URL_SCHEME – Thành phần này trả về lược đồ URL (http/https). PHP_URL_HOST – Thành phần này trả về tên máy chủ (ví dụ. com/www. ví dụ. com).