php获取url地址栏与详细参数实例讲解

发布时间:2020-06-02编辑:脚本学堂
有关php取得url地址栏参数的几种方法,以及$_SERVER 属性的详细说明,获取PHP后的网址参数,获取域名或主机地址,来源网页的详细地址等,需要的朋友参考下。

php获取url地址栏参数多种方法:
 

$_SERVER["SERVER_PORT"]  //获取端口 
$_SERVER['HTTP_HOST']  //获取域名或主机地址 如test.cn 或http://www.test.cn 或2010.test.cn 
$_SERVER['SERVER_NAME']  //获取域名或主机地址 注:只是主域名 如 test.cn 
$_SERVER["REQUEST_URI"]  //获取域名后的详细地址 如:/index.php?id=123 ... 
$_SERVER['PHP_SELF']  //获取php文件名 
$_SERVER["QUERY_STRING"]  //获取PHP后的网址参数 
$_SERVER['HTTP_REFERER']  //来源网页的详细地址  
 

 
输出:
 

echo "rewrite: ".$_GET["rewrite"]; 
echo "<br>SERVER_PORT: ".$_SERVER["SERVER_PORT"]; 
echo "<br>HTTP_HOST: ".$_SERVER["HTTP_HOST"]; 
echo "<br>SERVER_NAME: ".$_SERVER["SERVER_NAME"]; 
echo "<br>REQUEST_URI: ".$_SERVER["REQUEST_URI"]; 
echo "<br>PHP_SELF: ".$_SERVER["PHP_SELF"]; 
echo "<br>QUERY_STRING: ".$_SERVER["QUERY_STRING"]; 
echo "<br>HTTP_REFERER: ".$_SERVER["HTTP_REFERER"]; 

注意:
PHP中的SERVER_NAME 和HTTP_HOST的区别
 
地址栏里输入以下网址:
1) http://www.test.cn/ 时
对应的值为:
HTTP_HOST: www.test.cn
SERVER_NAME: test.cn

2) http://blog.test.cn / 时
对应的值为:
HTTP_HOST: blog.test.cn
SERVER_NAME: test.cn
 
php $_SERVER 属性说明
 

$_SERVER[ 'PHP_SELF' ] #当前正在执行脚本的文件名,与 document root相关。  
$_SERVER[ 'argv' ] #传递给该脚本的参数。  
$_SERVER[ 'argc' ] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。  
$_SERVER[ 'GATEWAY_INTERFACE' ] #服务器使用的 CGI 规范的版本。例如,“CGI/ 1.1 ”。  
$_SERVER[ 'SERVER_NAME' ] #当前运行脚本所在服务器主机的名称。  
$_SERVER[ 'SERVER_SOFTWARE' ] #服务器标识的字串,在响应请求时的头部中给出。  
$_SERVER[ 'SERVER_PROTOCOL' ] #请求页面时通信协议的名称和版本。例如,“HTTP/ 1.0 ”。  
$_SERVER[ 'REQUEST_METHOD' ] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。  
$_SERVER[ 'QUERY_STRING' ] #查询(query)的字符串。  
$_SERVER[ 'DOCUMENT_ROOT' ] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。  
$_SERVER[ 'HTTP_ACCEPT' ] #当前请求的 Accept: 头部的内容。  
$_SERVER[ 'HTTP_ACCEPT_CHARSET' ] #当前请求的 Accept-Charset: 头部的内容。例如:“iso- 8859 - 1 ,*,utf- 8 ”。  
$_SERVER[ 'HTTP_ACCEPT_ENCODING' ] #当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。  
$_SERVER[ 'HTTP_ACCEPT_LANGUAGE' ]# 当前请求的 Accept-Language: 头部的内容。例如:“en”。  
$_SERVER[ 'HTTP_CONNECTION' ] #当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。  
$_SERVER[ 'HTTP_HOST' ] #当前请求的 Host: 头部的内容。  
$_SERVER[ 'HTTP_REFERER' ] #链接到当前页面的前一页面的 URL 地址。  
$_SERVER[ 'HTTP_USER_AGENT' ] #当前请求的 User_Agent: 头部的内容。  
$_SERVER[ 'HTTPS' ] — 如果通过https访问,则被设为一个非空的值(on),否则返回off  
$_SERVER[ 'REMOTE_ADDR' ] #正在浏览当前页面用户的 IP 地址。  
$_SERVER[ 'REMOTE_HOST' ] #正在浏览当前页面用户的主机名。  
$_SERVER[ 'REMOTE_PORT' ] #用户连接到服务器时所使用的端口。  
$_SERVER[ 'SCRIPT_FILENAME' ] #当前执行脚本的绝对路径名。  
$_SERVER[ 'SERVER_ADMIN' ] #管理员信息 (www.jb200.com)
$_SERVER[ 'SERVER_PORT' ] #服务器所使用的端口  
$_SERVER[ 'SERVER_SIGNATURE' ] #包含服务器版本和虚拟主机名的字符串。  
$_SERVER[ 'PATH_TRANSLATED' ] #当前脚本所在文件系统(不是文档根目录)的基本路径。  
$_SERVER[ 'SCRIPT_NAME' ] #包含当前脚本的路径。这在页面需要指向自己时非常有用。  
$_SERVER[ 'REQUEST_URI' ] #访问此页面所需的 URI。例如,“/index.html”。  
$_SERVER[ 'PHP_AUTH_USER' ] #当 PHP 运行在 apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。  
$_SERVER[ 'PHP_AUTH_PW' ] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。  
$_SERVER[ 'AUTH_TYPE' ] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。

php获取当前页面url地址:
javascript实现:
 

top.location.href   顶级窗口的地址
this.location.href  当前窗口的地址

例子,用php实现:
 

#测试网址:     http://localhost/blog/testurl.php?id=5

//获取域名或主机地址
echo $_SERVER['HTTP_HOST']."<br>"; #localhost

//获取网页地址
echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php

//获取网址参数
echo $_SERVER["QUERY_STRING"]."<br>"; #id=5

//获取用户代理
echo $_SERVER['HTTP_REFERER']."<br>";

//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
#http://localhost/blog/testurl.php?id=5

//包含端口号的完整url
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
#http://localhost:80/blog/testurl.php?id=5

//只取路径
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
echo dirname($url);
#http://localhost/blog