[PHP] Lấy đường dẫn URL của trang hiện tại

Có bao giờ bạn muốn lấy đường dẫn (url – link) của trang hiện tại như hình vẽ dưới đây ?

Lay duong dan URL hien tai

 

Tôi nghĩ có đôi lúc bạn sẽ cần dùng đến đường dẫn trang hiện tại, ví dụ bạn cần lưu đường dẫn vào 1 biến tạm để nếu nhấn nút Back sẽ trở lại đúng trang đó,  kiểm tra người dùng đang ở trang nào, đang thao tác những gì….Nói chung yêu cầu thì muôn hình vạn trạng. Đoạn code dưới đây sẽ giúp bạn lấy được url :

<?php
  function getCurrentPageURL() {
    $pageURL = 'http';

    if (!empty($_SERVER['HTTPS'])) {
      if ($_SERVER['HTTPS'] == 'on') {
        $pageURL .= "s";
      }
    }

    $pageURL .= "://";

    if ($_SERVER["SERVER_PORT"] != "80") {
      $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
    } else {
      $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
    }

    return $pageURL;
  }
?>

Đọc đoạn code ở trên, có thể có nhiều bạn bỡ ngỡ, thắc mắc không hiểu chức năng của biến $_SERVER[“SERVER_NAME”], $_SERVER[“SERVER_PORT”]…Sau khi đọc chú thích dưới đây, các bạn sẽ gỡ bỏ được các khúc mắc đó.

Ví dụ tôi có một đường dẫn như sau:

http://sinhvienit.net/@forum/showthread.php?t=2053

Thì khi sử dụng biến $_SERVER, chúng ta sẽ thu được các kết quả tương ứng như sau

  • $_SERVER[‘HTTP_HOST’] => sinhvienit.net
  • $_SERVER[‘PHP_SELF’] =>  /@forum/showthread.php
  • $_SERVER[‘REQUEST_TIME’] => Thời gian mà client gửi request ở dạng TIME _STAMP
  • $_SERVER[‘QUERY_STRING’] => t = 2053
  • $_SERVER[‘DOCUMENT_ROOT’] = Thư mục gốc chứa mã nguồn. VD: /home/sinhvienit/public_html (đối với Linux) hay C:\www (đối với windows)
  • $_SERVER[‘HTTP_REFERER’] = Cái này bạn đang trên http://www.google.com.vn/search?q=sinhvienit mà click vào link tới sinhvienit.net thì nó có giá trị http://www.google.com.vn/search?q=sinhvienit
  • $_SERVER[‘REMOTE_HOST’] = Hostname của người truy cập
  • $_SERVER[‘REMOTE_PORT’] = Port mà trình duyệt mở ra để kết nối tới server
  • $_SERVER[‘REQUEST_URI’] => /@forum/showthread.php?t=2053
  • $_SERVER[‘SERVER_NAME’] = Tên của server (Gần giống với computer-name) ở máy PC của mình. Ví dụ server.sinhvienit.net
  • $_SERVER[‘SERVER_ADDR’] = IP của server
  • $_SERVER[‘REMOTE_ADDR’] = IP của người truy cập
  • $_SERVER[‘HTTP_USER_AGENT’] = Thông tin về trình duyệt của người truy cập

Hi vọng đoạn code sẽ giúp ích cho các bạn. Thân ái !

Tấn Việt

Tôi lập trang web này để thỏa mãn sở thích viết cái gì đó vui vui khi rãnh rỗi và đồng thời cũng chia sẻ những gì tôi biết hoặc đọc đâu đó trên mạng về Lập trình web. Tôi hi vọng những bài viết này sẽ giúp ích cho các bạn. Thân ái!

You may also like...

7 Responses

  1. nuida says:

    Có ích cho mình đây!

  2. danhdvd says:

    thank bạn, bài viết rất có ích với mình.

  3. Tri Hoang says:

    Thank you! đúng lúc đang cần 😀

  4. an says:

    tuyệt vời:mà bạn ơi cho mình hỏi để lấy tên miền của trang thì làm thế nào

    • Tấn Việt says:

      Để lấy tên miền thì bạn chỉ cần dùng biến $_SERVER[“SERVER_NAME”] hoặc $_SERVER[‘HTTP_HOST’]. Ví dụ:

      < ?php
          $domain = $_SERVER["SERVER_NAME"];
          echo $domain;
      ?>
      
  5. Thang says:

    Lấy rồi Lưu vào đâu vậy bạn, mình muốn nó tự động chèn vào form, khi khách hàng submit thì biết là khách hàng submit từ link nào thì phải làm chi tiết thế nào, mình dùng opencart 2.0

  6. Minh hà says:

    Bạn cho hỏi muốn tìm Email của quản trị viên một trang web thì phải làm thế nào ? Nói chung là muốn liên hệ với quản trị mạng thì làm cách nào bạn chỉ giúp mình với ?

Leave a Reply

Your email address will not be published. Required fields are marked *