程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php獲取當前頁面完整url地址實例

php獲取當前頁面完整url地址實例

編輯:關於PHP編程

在php中我們要獲取 當前頁面完整url地址需要使用到幾個常用的php全局變量函數了,主要是以$_SERVER[]這些變量,下面我來給各位看一個獲取當前頁面完整url地址程序吧。

先來看一些

$_SERVER[ 'SERVER_NAME' ] #當前運行腳本所在服務器主機的名稱。
$_SERVER[ 'QUERY_STRING' ] #查詢(query)的字符串。  
$_SERVER[ 'HTTP_HOST' ] #當前請求的 Host: 頭部的內容。  
$_SERVER[ 'HTTP_REFERER' ] #鏈接到當前頁面的前一頁面的 URL 地址。  
$_SERVER[ 'SERVER_PORT' ] #服務器所使用的端口  
$_SERVER[ 'REQUEST_URI' ] #訪問此頁面所需的 URI。  


有了些面函數我們就可以開始了

先來看一些base方法


baseUrl的兩種方法

方法一:

 代碼如下 復制代碼

// baseUrl
function baseUrl($uri=''){
 $baseUrl = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') ? 'https://' : 'http://';
 $baseUrl .= isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : getenv('HTTP_HOST');
 $baseUrl .= isset($_SERVER['SCRIPT_NAME']) ? dirname($_SERVER['SCRIPT_NAME']) : dirname(getenv('SCRIPT_NAME'));
 return $baseUrl.'/'.$uri;
}


方法二:

 代碼如下 復制代碼

    /**
     * Suppose, you are browsing in your localhost
     * http://localhost/myproject/index.php?id=8
     */
    function baseUrl()
    {
        // output: /myproject/index.php
        $currentPath = $_SERVER['PHP_SELF'];

        // output: Array ( [dirname] => /myproject [basename] => index.php [extension] => php [filename] => index )
        $pathInfo = pathinfo($currentPath);

        // output: localhost
        $hostName = $_SERVER['HTTP_HOST'];

        // output: http://
        $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https://' ? 'https://' : 'http://';

        // return: http://localhost/myproject/
        return $protocol.$hostName.$pathInfo['dirname']."/";
    }

方法三

 代碼如下 復制代碼

<?php
 /**
  *@author mckee
  *@blog  http://www.bKjia.c0m
  */
 function get_page_url(){
  $url = (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443') ? 'https://' : 'http://';
  $url .= $_SERVER['HTTP_HOST'];
  $url .= isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : urlencode($_SERVER['PHP_SELF']) . '?' . urlencode($_SERVER['QUERY_STRING']);
  return $url;
 }
 echo get_page_url();
?>

下面說明一下獲取當前頁面完整路徑的方法:

 代碼如下 復制代碼

<?php
function getFullUrl(){
    # 解決通用問題
    $requestUri = '';
    if (isset($_SERVER['REQUEST_URI'])) { #$_SERVER["REQUEST_URI"] 只有 apache 才支持,
        $requestUri = $_SERVER['REQUEST_URI'];
    } else {
        if (isset($_SERVER['argv'])) {
            $requestUri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['argv'][0];
        } else if(isset($_SERVER['QUERY_STRING'])) {
            $requestUri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['QUERY_STRING'];
        }
    }
//    echo $requestUri.'<br />';
    $scheme = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
    $protocol = strstr(strtolower($_SERVER["SERVER_PROTOCOL"]), "/",true) . $scheme;
    $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
    # 獲取的完整url
    $_fullUrl = $protocol . "://" . $_SERVER['SERVER_NAME'] . $port . $requestUri;
    return $_fullUrl;
}

echo getFullUrl();注: 由於php沒有內置的函數.我們需要對url上的參數進行組合,從而實現整個url

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved