php获取当前页面完整url地址实例

PHP中我们要获取 当前页面完整URL地址需要使用到几个常用的PHP全局变量函数了,主要是以$_SERVER[]这些变量,下面我来给各位看一个获取当前页面完整URL地址程序吧。

先来看一些PHP变量:

$_SERVER[ 'SERVER_NAME' ] #当前运行脚本所在服务器主机的名称

$_SERVER[ 'QUERY_STRING' ] #查询(query)的字符串。   

$_SERVER[ 'HTTP_HOST' ] #当前请求的 Host: 头部的内容。   

$_SERVER[ 'HTTP_REFERER' ] #链接当前页面的前一页面的 URL 地址。   

$_SERVER[ 'SERVER_PORT' ] #服务器所使用的端口   

$_SERVER[ 'REQUEST_URI' ] #访问此页面所需的 URI。  

有了些面函数我们就可以开始了,先来看一些base方法.

baseUrl的两种方法

方法代码如下:

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

方法代码如下:

  1. /** 
  2.     * Suppose, you are browsing in your localhost 
  3.     * http://localhost/myproject/index.PHP?id=8 
  4.     */ 
  5.    function baseUrl() 
  6.    { 
  7.        // output: /myproject/index.PHP 
  8.        $currentPath = $_SERVER['PHP_SELF']; 
  9.        // output: Array ( [dirname] => /myproject [basename] => index.PHP [extension] => PHP [filename] => index ) 
  10.        $pathInfo = pathinfo($currentPath); 
  11.        // output: localhost 
  12.        $hostName = $_SERVER['HTTP_HOST']; 
  13.        // output: http:// 
  14.        $protocol = strtolower(substr($_SERVER[SERVER_PROTOCOL],5))=='https://' ? 'https://' : 'http://'
  15.        // return: http://localhost/myproject/ 
  16.        return $protocol.$hostName.$pathInfo['dirname']./
  17.    } 

方法代码如下:

  1. <?PHP 
  2.  /** 
  3.   *@author mckee 
  4.   *@blog  http://www.PHPfensi.com 
  5.   */ 
  6.  function get_page_url(){ 
  7.   $url = (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443') ? 'https://' : 'http://'
  8.   $url .= $_SERVER['HTTP_HOST']; 
  9.   $url .= isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : urlencode($_SERVER['PHP_SELF']) . '?' . urlencode($_SERVER['QUERY_STRING']); 
  10.   return $url
  11.  } 
  12.  echo get_page_url(); 
  13. ?> 

下面说明一下获取当前页面完整路径的方法,代码如下:

  1. <?PHP 
  2. function getFullUrl(){ 
  3.     # 解决通用问题 
  4.     $requestUri = ''
  5.     if (isset($_SERVER['REQUEST_URI'])) { #$_SERVER[REQUEST_URI] 只有 apache 才支持
  6.         $requestUri = $_SERVER['REQUEST_URI']; 
  7.     } else { 
  8.         if (isset($_SERVER['argv'])) { 
  9.             $requestUri = $_SERVER['PHP_SELF'] .'?'$_SERVER['argv'][0]; 
  10.         } else if(isset($_SERVER['QUERY_STRING'])) { 
  11.             $requestUri = $_SERVER['PHP_SELF'] .'?'$_SERVER['QUERY_STRING']; 
  12.         } 
  13.     } 
  14. //    echo $requestUri.'<br />'; 
  15.     $scheme = emptyempty($_SERVER[HTTPS]) ? '' : ($_SERVER[HTTPS] == on) ? s : 
  16.     $protocol = strstr(strtolower($_SERVER[SERVER_PROTOCOL]), /,true) . $scheme
  17.     $port = ($_SERVER[SERVER_PORT] == 80) ?  : (:.$_SERVER[SERVER_PORT]); 
  18.     # 获取的完整url 
  19.     $_fullUrl = $protocol . :// . $_SERVER['SERVER_NAME'] . $port . $requestUri
  20.     return $_fullUrl

echo getFullUrl();注:由于PHP没有内置的函数,我们需要对url上的参数进行组合,从而实现整个url.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...