URL与参数的相关知识点

开始接触PHP以来,对$_SERVER这个函数了解不多,现在通过这个实例,加深一下了解。

首先,想要获取URL上面的参数除了$_GET之外还有很多方法可以获得,今天统一都试一试。

1、$_SERVER['QUERY_STRING']:这个函数直接可以给出参数,经测试没有什么问题;

2、函数的形式:

<span style="white-space:pre">	</span>/**
	 * 说明:获取完整URL
	 * $is_get:代表URL后边是否需要带参数,默认为1,带
	 */
	function curPageURL($is_get = 1) 
	{
		//不接受0,1意外的参数
		if(!in_array($is_get,array(0,1)))
		{
			return FALSE;
		}
		//如不需要参数可将$_SERVER["REQUEST_URI"]换成$_SERVER["PHP_SELF"]
		if($is_get ==0)
		{
			$url = $_SERVER["PHP_SELF"];
		}else
		{
			$url = $_SERVER["REQUEST_URI"];
		}
		
	    $pageURL = 'http';
	    if ($_SERVER["HTTPS"] == "on") 
	    {
	        $pageURL .= "s";
	    }
	    $pageURL .= "://";
	    if ($_SERVER["SERVER_PORT"] != "80") 
	    {
	    	//服务器名称+端口+URL链接;如不需要参数可将$_SERVER["REQUEST_URI"]换成$_SERVER["PHP_SELF"]
	        $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $url;
	    } 
	    else 
	    {
	        $pageURL .= $_SERVER["SERVER_NAME"] . $url;
	    }
	    return $pageURL;
	}
3、parse_url($this->curPageURL());:配合上边的函数,以数组形式输出。

4、basename($this->curPageURL());:配合上边的函数,直接输出部分URL。

附:$_SERVER的打印结果

Array
(
    [HTTP_HOST] => 127.0.0.1
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_REFERER] => http://127.0.0.1/thinkphp/index.php?metal=silver
    [HTTP_COOKIE] => Hm_lvt_1247e0dc0e4ab64a346aee382407934f=1450230685,1450256189,1450313933,1450406253; PHPSESSID=umf04i9tfjnmfo5993np7t3hg4
    [HTTP_CONNECTION] => keep-alive
    [HTTP_CACHE_CONTROL] => max-age=0
    [PATH] => C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\TortoiseSVN\bin;
    [SystemRoot] => C:\Windows
    [COMSPEC] => C:\Windows\system32\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    [WINDIR] => C:\Windows
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache/2.4.4 (Win64) PHP/5.4.12
    [SERVER_NAME] => 127.0.0.1
    [SERVER_ADDR] => 127.0.0.1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 127.0.0.1
    [DOCUMENT_ROOT] => D:/wamp/www
    [REQUEST_SCHEME] => http
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => D:/wamp/www
    [SERVER_ADMIN] => admin@example.com
    [SCRIPT_FILENAME] => D:/wamp/www/thinkphp/index.php
    [REMOTE_PORT] => 58023
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => metal=gold
    [REQUEST_URI] => /thinkphp/index.php?metal=gold
    [SCRIPT_NAME] => /thinkphp/index.php
    [PHP_SELF] => /thinkphp/index.php
    [REQUEST_TIME_FLOAT] => 1450425216.941
    [REQUEST_TIME] => 1450425216
    [PATH_INFO] => 
)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值