<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>url &#8211; LPC影子技术分享</title>
	<atom:link href="https://www.mudbest.com/tag/url/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.mudbest.com</link>
	<description>行影不离,忘之却步.</description>
	<lastBuildDate>Fri, 19 Jul 2013 06:11:35 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>PHP获取当前页面的完整URL</title>
		<link>https://www.mudbest.com/php%e8%8e%b7%e5%8f%96%e5%bd%93%e5%89%8d%e9%a1%b5%e9%9d%a2%e7%9a%84%e5%ae%8c%e6%95%b4url/</link>
		
		<dc:creator><![CDATA[hkshadow]]></dc:creator>
		<pubDate>Mon, 17 Dec 2012 10:02:48 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[分享]]></category>
		<category><![CDATA[$_SERVER]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[参数]]></category>
		<guid isPermaLink="false">http://www.mudbest.com/?p=1732</guid>

					<description><![CDATA[注意：URL使用rewrite规则的时候，$_SERVER[&#8216;PHP_SELF&#8217;]和$...]]></description>
										<content:encoded><![CDATA[<p>注意：URL使用rewrite规则的时候，$_SERVER[&#8216;PHP_SELF&#8217;]和$_SERVER[&#8220;REQUEST_URL&#8221;]可能不会返回你想要的东西。</p>
<p>$_SERVER[&#8220;REQUEST_URI&#8221;] 只有 apache 才支持，想要一个获取 $_SERVER[&#8216;REQUEST_URI&#8217;] 值的通用解决方案，可以使用以下方案：<br />
<span id="more-1732"></span></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
// 说明：获取 _SERVER&#x5B;'REQUEST_URI'] 值的通用解决方案
function request_uri() {
	if (isset ( $_SERVER &#x5B;'REQUEST_URI'] )) {
		$uri = $_SERVER &#x5B;'REQUEST_URI'];
	} else {
		if (isset ( $_SERVER &#x5B;'argv'] )) {
			$uri = $_SERVER &#x5B;'PHP_SELF'] . '?' . $_SERVER &#x5B;'argv'] &#x5B;0];
		} else {
			$uri = $_SERVER &#x5B;'PHP_SELF'] . '?' . $_SERVER &#x5B;'QUERY_STRING'];
		}
	}
	return $uri;
}
?&gt;
</pre>
<p>关于$_SERVER的相关参数介绍：</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
 * Window - Preferences - Zend Studio- PHP - Code Templates PHP 服务器变量：$_SERVER
 * **************************************************************
 */
echo 
$_SERVER &#x5B;'PHP_SELF'] . '&lt;BR/&gt;' . // 前正在执行脚本的文件名，与 document root相关。
$_SERVER &#x5B;'argv'] . '&lt;BR/&gt;' . // 递给该脚本的参数。
$_SERVER &#x5B;'argc'] . '&lt;BR/&gt;' . // 含传递给程序的命令行参数的个数（如果运行在命令行模式）。
$_SERVER &#x5B;'GATEWAY_INTERFACE'] . '&lt;BR/&gt;' . // 务器使用的 CGI 规范的版本。例如，“CGI/1.1”。
$_SERVER &#x5B;'SERVER_NAME'] . '&lt;br/&gt;' . // 前运行脚本所在服务器主机的名称。
$_SERVER &#x5B;'SERVER_SOFTWARE'] . '&lt;BR/&gt;' . // 务器标识的字串，在响应请求时的头部中给出。
$_SERVER &#x5B;'SERVER_PROTOCOL'] . '&lt;BR/&gt;' . // 求页面时通信协议的名称和版本。例如，“HTTP/1.0”。
$_SERVER &#x5B;'REQUEST_METHOD'] . '&lt;BR/&gt;' . // 问页面时的请求方法。例如：“GET”、“HEAD”，“POST”，“PUT”。
$_SERVER &#x5B;'QUERY_STRING'] . '&lt;BR/&gt;' . // 询(query)的字符串。
$_SERVER &#x5B;'DOCUMENT_ROOT'] . '&lt;BR/&gt;' . // 前运行脚本所在的文档根目录。在服务器配置文件中定义。
$_SERVER &#x5B;'HTTP_ACCEPT'] . '&lt;BR/&gt;' . // 前请求的 Accept: 头部的内容。
$_SERVER &#x5B;'HTTP_ACCEPT_CHARSET'] . '&lt;BR/&gt;' . // 前请求的 Accept-Charset:
$_SERVER &#x5B;'HTTP_ACCEPT_ENCODING'] . '&lt;BR/&gt;' . // 前请求的 Accept-Encoding:
$_SERVER &#x5B;'HTTP_ACCEPT_LANGUAGE'] . '&lt;BR/&gt;' . // 前请求的 Accept-Language:
$_SERVER &#x5B;'HTTP_CONNECTION'] . '&lt;BR/&gt;' . // 前请求的 Connection: 头部的内容。例如：“Keep-Alive”。
$_SERVER &#x5B;'HTTP_HOST'] . '&lt;BR/&gt;' . // 前请求的 Host: 头部的内容。
$_SERVER &#x5B;'HTTP_REFERER'] . '&lt;BR/&gt;' . // 接到当前页面的前一页面的 URL 地址。
$_SERVER &#x5B;'HTTP_USER_AGENT'] . '&lt;BR/&gt;' . // 前请求的 User_Agent: 头部的内容。
$_SERVER &#x5B;'REMOTE_ADDR'] . '&lt;BR/&gt;' . // 在浏览当前页面用户的 IP 地址。
$_SERVER &#x5B;'REMOTE_HOST'] . '&lt;BR/&gt;' . // 在浏览当前页面用户的主机名。
$_SERVER &#x5B;'REMOTE_PORT'] . '&lt;BR/&gt;' . // 户连接到服务器时所使用的端口。
$_SERVER &#x5B;'SCRIPT_FILENAME'] . '&lt;BR/&gt;' . // 前执行脚本的绝对路径名。
$_SERVER &#x5B;'SERVER_ADMIN'] . '&lt;BR/&gt;' . // 理员信息
$_SERVER &#x5B;'SERVER_PORT'] . '&lt;BR/&gt;' . // 务器所使用的端口
$_SERVER &#x5B;'SERVER_SIGNATURE'] . '&lt;BR/&gt;' . // 含服务器版本和虚拟主机名的字符串。
$_SERVER &#x5B;'PATH_TRANSLATED'] . '&lt;BR/&gt;' . // 前脚本所在文件系统（不是文档根目录）的基本路径。
$_SERVER &#x5B;'SCRIPT_NAME'] . '&lt;BR/&gt;' . // 含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER &#x5B;'REQUEST_URI'] . '&lt;BR/&gt;' . // 问此页面所需的 URI。例如，“/index.html”。
$_SERVER &#x5B;'PHP_AUTH_USER'] . '&lt;BR/&gt;' . // PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的用户名。
$_SERVER &#x5B;'PHP_AUTH_PW'] . '&lt;BR/&gt;' . 
// PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的密码。
$_SERVER &#x5B;'AUTH_TYPE'] . '&lt;BR/&gt;'
 #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是认证的类型。
;
?&gt;
</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>php组合GET参数</title>
		<link>https://www.mudbest.com/%e8%8e%b7%e5%8f%96url%e7%9a%84%e9%99%84%e5%b8%a6%e5%8f%82%e6%95%b0/</link>
		
		<dc:creator><![CDATA[hkshadow]]></dc:creator>
		<pubDate>Sat, 24 Sep 2011 07:16:14 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[url]]></category>
		<guid isPermaLink="false">http://www.mudbest.com/?p=808</guid>

					<description><![CDATA[获取index.php?uid=123&#038;mk=dir&#038;do=action 在进行翻页的时候...]]></description>
										<content:encoded><![CDATA[<p>获取index.php?uid=123&#038;mk=dir&#038;do=action</p>
<p>在进行翻页的时候，为了记录后面的参数进行翻页，可使用下面的函数。<br />
<span id="more-808"></span></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/**
 * 获取url的附带参数
 * Enter description here ...
 * by hkshadow qq 2765237
 *  2011-09-22
 */

function HkGetUrlPara($key, $value) {
	$purl = $_SERVER &#x5B;'QUERY_STRING']; //获取url后面的参数
	$purl_arr = explode ( &quot;&amp;&quot;, $purl );
	array_shift ( $purl_arr );
	foreach ( $purl_arr as $k =&gt; $v ) {
		$arr = explode ( &quot;=&quot;, $v );
		$ppara_arr &#x5B;$arr &#x5B;0]] = $arr &#x5B;1];
	}
	unset ( $ppara_arr &#x5B;'page'] );
	$ppara_arr &#x5B;$key] = $value;
	$str = '';
	foreach ( $ppara_arr as $pk =&gt; $ppara ) {
		if (! empty ( $ppara )) {
			if (! empty ( $purl )) {
				$str .= '&amp;' . $pk . '=' . $ppara;
			} else {
				$str .= '?' . $pk . '=' . $ppara;
			}
		}
	}
	return $str;
}
?&gt;
</pre>
<p>方案2：</p>
<p>edit:2013-07-19</p>
<p>运行环境: PHP5.3.5<br />
代码会解释 &#8220;PHP解析URL并得到URL中的参数&#8221; 这句话~ ^_^</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
//例举一个URL格式的字符串:
$str = 'http://www.mudbest.com/wp-admin/post.php?make=232s&amp;action=update';

//1.0 用parse_url解析URL,此处是$str
$arr = parse_url($str);
var_dump($arr);


//2.0 将URL中的参数取出来放到数组里
$arr_query = convertUrlQuery($arr&#x5B;'query']);
var_dump($arr_query);


//3.0 将 参数数组 再变回 字符串形式的参数格式
var_dump(getUrlQuery($arr_query));


/** 
 * Returns the url query as associative array 
 * 
 * @param    string    query 
 * @return    array    params 
 */ 
function convertUrlQuery($query)
{ 
    $queryParts = explode('&amp;', $query); 
    
    $params = array(); 
    foreach ($queryParts as $param) 
	{ 
        $item = explode('=', $param); 
        $params&#x5B;$item&#x5B;0]] = $item&#x5B;1]; 
    } 
    
    return $params; 
}

function getUrlQuery($array_query)
{
	$tmp = array();
	foreach($array_query as $k=&gt;$param)
	{
		$tmp&#x5B;] = $k.'='.$param;
	}
	$params = implode('&amp;',$tmp);
	return $params;
}
</pre>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
