<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[PHP获取当前url路径的函数及服务器变量 ]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 30 Sep 2010 13:52:41 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	说明：查询(query)的字符串 <br/>2，$_SERVER[&quot;REQUEST_URI&quot;]<br/>说明：访问此页面所需的URI<br/><br/>3，$_SERVER[&quot;SCRIPT_NAME&quot;]<br/>说明：包含当前脚本的路径<br/><br/>4，$_SERVER[&quot;PHP_SELF&quot;]<br/>说明：当前正在执行脚本的文件名<br/><br/>实例：<br/>1，http://www.marshal.sh.cn/ (直接打开主页)<br/>结果：<br/>$_SERVER[&quot;QUERY_STRING&quot;] = &quot;&quot;<br/>$_SERVER[&quot;REQUEST_URI&quot;] = &quot;/&quot;<br/>$_SERVER[&quot;SCRIPT_NAME&quot;] = &quot;/index.php&quot;<br/>$_SERVER[&quot;PHP_SELF&quot;]&nbsp;&nbsp;&nbsp;&nbsp; = &quot;/index.php&quot;<br/><br/>2，http://www.marshal.sh.cn/?... (附带查询)<br/>结果：<br/>$_SERVER[&quot;QUERY_STRING&quot;] = &quot;p=222&quot;<br/>$_SERVER[&quot;REQUEST_URI&quot;] = &quot;/?p=222&quot;<br/>$_SERVER[&quot;SCRIPT_NAME&quot;] = &quot;/index.php&quot;<br/>$_SERVER[&quot;PHP_SELF&quot;]&nbsp;&nbsp;&nbsp;&nbsp; = &quot;/index.php&quot;<br/><br/>3，http://www.marshal.sh.cn/i...<br/>结果：<br/>$_SERVER[&quot;QUERY_STRING&quot;] = &quot;p=222&amp;q=biuuu&quot;<br/>$_SERVER[&quot;REQUEST_URI&quot;] = &quot;/index.php?p=222&amp;q=biuuu&quot;<br/>$_SERVER[&quot;SCRIPT_NAME&quot;] = &quot;/index.php&quot;<br/>$_SERVER[&quot;PHP_SELF&quot;]&nbsp;&nbsp;&nbsp;&nbsp; = &quot;/index.php&quot;<br/><br/>$_SERVER[&quot;QUERY_STRING&quot;]获取查询语句，实例中可知，获取的是?后面的值<br/>$_SERVER[&quot;REQUEST_URI&quot;] 获取http://www.marshal.sh.cn后面的值，包括/<br/>$_SERVER[&quot;SCRIPT_NAME&quot;] 获取当前脚本的路径，如：index.php<br/>$_SERVER[&quot;PHP_SELF&quot;] 当前正在执行脚本的文件名<br/><br/>当前url：&quot;http://&quot;.$_SERVER[&#039;HTTP_HOST&#039;].$_SERVER[&#039;PHP_SELF&#039;]<br/>总结一下，对于QUERY_STRING，REQUEST_URI，SCRIPT_NAME和PHP_SELF，深入了解将有利于我们在$_SERVER函数中正确调用这四个值。通过实例详解$_SERVER函数中 QUERY_STRING，REQUEST_URI，SCRIPT_NAME和PHP_SELF掌握四个变量之间的区别。<br/><br/>代码如下：<br/>代码 <br/><br/><div class="code">&lt;?php<br/>echo $_SERVER&#91;&#039;DOCUMENT_ROOT&#039;&#93;.&quot;&lt;br&gt;&quot;; // 获得服务器文档根变量<br/>echo $_SERVER&#91;&#039;PHP_SELF&#039;&#93;.&quot;&lt;br&gt;&quot;; //获得执行该代码的文件服务器绝对路径的变量<br/>echo __FILE__.&quot;&lt;br&gt;&quot;; //获得文件的文件系统绝对路径的变量<br/>echo dirname(__FILE__); // 获得文件所在的文件夹路径的函数<br/>?&gt;</div><br/><br/><br/><div class="code">//server函数<br/>$_SERVER&#91;&quot;HTTP_REFERER&quot;&#93;=http://localhost/example/<br/>$_SERVER&#91;&quot;HTTP_ACCEPT_LANGUAGE&quot;&#93;=zh-cn<br/>$_SERVER&#91;&quot;HTTP_ACCEPT_ENCODING&quot;&#93;=gzip, deflate<br/>$_SERVER&#91;&quot;HTTP_USER_AGENT&quot;&#93;=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)<br/>$_SERVER&#91;&quot;HTTP_HOST&quot;&#93;=localhost<br/>$_SERVER&#91;&quot;HTTP_CONNECTION&quot;&#93;=Keep-Alive<br/>$_SERVER&#91;&quot;PATH&quot;&#93;=C:&#92;WINDOWS&#92;system32;C:&#92;WINDOWS;C:&#92;WINDOWS&#92;System32&#92;Wbem;C:&#92;Program Files&#92;Common Files&#92;Adobe&#92;AGL;C:&#92;Program Files&#92;MySQL&#92;MySQL Server 5.0&#92;bin;C:&#92;php;C:&#92;php&#92;ext<br/>$_SERVER&#91;&quot;SystemRoot&quot;&#93;=C:&#92;WINDOWS<br/>$_SERVER&#91;&quot;COMSPEC&quot;&#93;=C:&#92;WINDOWS&#92;system32&#92;cmd.exe<br/>$_SERVER&#91;&quot;PATHEXT&quot;&#93;=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH<br/>$_SERVER&#91;&quot;WINDIR&quot;&#93;=C:&#92;WINDOWS<br/>$_SERVER&#91;&quot;SERVER_SIGNATURE&quot;&#93;=<br/>Apache/2.0.55 (Win32) PHP/5.1.1 Server at localhost Port 80 &#92;&#92;使用的何服务器<br/>$_SERVER&#91;&quot;SERVER_SOFTWARE&quot;&#93;=Apache/2.0.55 (Win32) PHP/5.1.1<br/>$_SERVER&#91;&quot;SERVER_NAME&quot;&#93;=localhost &#92;&#92;服务器名称<br/>$_SERVER&#91;&quot;SERVER_ADDR&quot;&#93;=127.0.0.1<br/>$_SERVER&#91;&quot;SERVER_PORT&quot;&#93;=80 &#92;&#92;服务器端口<br/>$_SERVER&#91;&quot;REMOTE_ADDR&quot;&#93;=127.0.0.1<br/>$_SERVER&#91;&quot;DOCUMENT_ROOT&quot;&#93;=D:/example &#92;&#92;网站的主目录<br/>$_SERVER&#91;&quot;SERVER_ADMIN&quot;&#93;=sss@163.com &#92;&#92;安装APACHE时设置的邮箱<br/>$_SERVER&#91;&quot;SCRIPT_FILENAME&quot;&#93;=D:/example/example/servervalues.php &#92;&#92;当前的网页的绝对路径，<br/>$_SERVER&#91;&quot;REMOTE_PORT&quot;&#93;=1076 &#92;&#92;远程端口<br/>$_SERVER&#91;&quot;GATEWAY_INTERFACE&quot;&#93;=CGI/1.1<br/>$_SERVER&#91;&quot;SERVER_PROTOCOL&quot;&#93;=HTTP/1.1<br/>$_SERVER&#91;&quot;REQUEST_METHOD&quot;&#93;=GET<br/>$_SERVER&#91;&quot;QUERY_STRING&quot;&#93;=&#92;&#92; 获取？号后面的内容<br/>$_SERVER&#91;&quot;REQUEST_URI&quot;&#93;=例子：/example/servervalues.php?a=1&amp; amp;b=2<br/>$_SERVER&#91;&quot;SCRIPT_NAME&quot;&#93;=例子：/example/servervalues.php<br/>$_SERVER&#91;&quot;PHP_SELF&quot;&#93;=/example/servervalues.php &#92;&#92;返回当前网页的相对路径.<br/>$_SERVER&#91;&quot;REQUEST_TIME&quot;&#93;=1179190013 &#92;&#92;运行时间 单位为十万分之一毫秒<br/>$_SERVER&#91;&quot;argv&quot;&#93;=Array<br/>$_SERVER&#91;&quot;argc&quot;&#93;=0</div><br/><br/>1，$_SERVER[&quot;QUERY_STRING&quot;]<br/>说明：查询(query)的字符串<br/>2，$_SERVER[&quot;REQUEST_URI&quot;]<br/>说明：访问此页面所需的URI<br/>3，$_SERVER[&quot;SCRIPT_NAME&quot;]<br/>说明：包含当前脚本的路径<br/>4，$_SERVER[&quot;PHP_SELF&quot;]<br/>说明：当前正在执行脚本的文件名<br/>实例：<br/>1，http://www.marshal.sh.cn / (直接打开主页)<br/>结果：<br/>$_SERVER[&quot;QUERY_STRING&quot;] = “”<br/>$_SERVER[&quot;REQUEST_URI&quot;] = “/”<br/>$_SERVER[&quot;SCRIPT_NAME&quot;] = “/index.php”<br/>$_SERVER[&quot;PHP_SELF&quot;] = “/index.php”<br/>2，http://www.marshal.sh.cn/?... (附带查询)<br/>结果：<br/>$_SERVER[&quot;QUERY_STRING&quot;] = “p=222″<br/>$_SERVER[&quot;REQUEST_URI&quot;] = “/?p=222″<br/>$_SERVER[&quot;SCRIPT_NAME&quot;] = “/index.php”<br/>$_SERVER[&quot;PHP_SELF&quot;] = “/index.php”<br/>3，http://www.marshal.sh.cn /index.php?p=222&amp;q=biuuu<br/>结果：<br/>$_SERVER[&quot;QUERY_STRING&quot;] = “p=222&amp;q=biuuu”<br/>$_SERVER[&quot;REQUEST_URI&quot;] = “/index.php?p=222&amp;q=biuuu”<br/>$_SERVER[&quot;SCRIPT_NAME&quot;] = “/index.php”<br/>$_SERVER[&quot;PHP_SELF&quot;] = “/index.php”<br/>$_SERVER[&quot;QUERY_STRING&quot;]获取查询语句，实例中可知，获取的是?后面的值<br/>$_SERVER[&quot;REQUEST_URI&quot;] 获取http://www.marshal.sh.cn后面的值，包括/<br/>$_SERVER[&quot;SCRIPT_NAME&quot;] 获取当前脚本的路径，如：index.php<br/>$_SERVER[&quot;PHP_SELF&quot;] 当前正在执行脚本的文件名<br/><br/><br/>代码 <br/><br/><br/><br/><div class="code">/**<br/>__FILE__ ,<br/>getcwd(),<br/>$_SERVER&#91;&quot;REQUEST_URI&quot;&#93;,<br/>$_SERVER&#91;&quot;SCRIPT_NAME&quot;&#93;,<br/>$_SERVER&#91;&quot;PHP_SELF&quot;&#93;,<br/>$_SERVER&#91;&quot;SCRIPT_FILENAME&quot;&#93;,</div><br/><br/>来观察一下这些变量或函数的异同.<br/>假设有一个请求地址为: http://localhost:8080/test...<br/>而 test.php 的完整路径是: D:/server/www/example/test.php<br/>1) getcwd()<br/>将得到浏览器请求的页面文件所在的目录. 即test.php 文件所在的目录: D:/server/www/example/ ,<br/>如果在 test.php 执行了 require 或 include 语句, 比如 inculde(”test_dir/test2.php”),<br/>那么在 test2.php 里 getcwd()函数 返回的也将是 test.php 所在的目录.<br/>2) __FILE__<br/>一个魔术变量, 用它将得到 __FILE__ 变量所在文件的完整路径,<br/>比如: test.php 里 __FILE__ 将得到 D:/server /www/example/test.php ,<br/>test_dir/test2.php 里的 __FILE__ 将得到 D:/server /www/example/test_dir/test2.php<br/><br/>3) $_SERVER[&quot;SCRIPT_FILENAME&quot;]<br/>将得到浏览器请求的页面文件的完整路径.<br/>test.php 和 test_dir/test2.php 里用 $_SERVER[&quot;SCRIPT_NAME&quot;] 都将得到 D:/server/www/example/test.php.<br/><br/>4) $_SERVER[&quot;SCRIPT_NAME&quot;]<br/>将得到浏览器请求的页面文件的文件名,注意: 与 $_SERVER[&quot;SCRIPT_NAME&quot;] 不同, 此变量只得到文件名而不包含路径,<br/>在 test.php 与 test_dir/test2.php 用$_SERVER[&quot;SCRIPT_NAME&quot;] 得到的都将是 test.php.<br/>当然, 在test.php 与 test_dir/test2.php 执行 basename($_SERVER[&quot;SCRIPT_FILENAME&quot;]) 与 $_SERVER[&quot;SCRIPT_NAME&quot;] 相同.<br/>执行 在test.php 与 test_dir/test2.php 执行 realpath(”test.php”) 得到的结果与 $_SERVER[&quot;SCRIPT_FILENAME&quot;] 相同.<br/><br/>5) $_SERVER[&quot;PHP_SELF&quot;]<br/>将得到浏览器请求页面的文件名, 并剥掉问号 ? 后的内容, 注意:不包含路径,<br/>比如在客户端里请求 http://localhost:8080 /test.php?age=20&amp;name=Tom,<br/>那么 test.php 和 test_dir/test2.php 的 $_SERVER[&quot;PHP_SELF&quot;] 都将得到 “test.php”。 “age=20&amp;name=Tom”被剥掉。<br/>而如果客户端里请求 http://localhost:8080/test... /age=20&amp;name=Tom,<br/>那么 test.php 和 test_dir/test2.php 的 $_SERVER[&quot;PHP_SELF&quot;] 都将得到 “test.php /age=20&amp;name=Tom”。<br/><br/>6) $_SERVER[&quot;REQUEST_URI&quot;]<br/>将得到浏览器请求页面的文件名, 以及文件名之后的所有内容(注意: 井号 # 之后的内容将被略去),<br/>比如在客户端里请求 http://localhost:8080 /test.php?age=20&amp;name=Tom,<br/>那么 test.php 和 test_dir/test2.php 的 $_SERVER[&quot;REUEST_URI&quot;] 都将得到 “test.php”。 “age=20&amp;name=Tom”被剥掉。<br/>而如果客户端里请求 http://localhost:8080/test... /age=20&amp;name=Tom,<br/>那么 test.php 和 test_dir/test2.php 的 $_SERVER[&quot;REQUEST_URI&quot;] 都将得到 “test.php /age=20&amp;name=Tom”。<br/>*/<br/><br/><br/><div class="code">// test.php:<br/>echo “test1.php variables <br/>”;<br/>echo “getcwd: “, getcwd(), “<br/>”;<br/>echo “__FILE__: “, __FILE__, “<br/>”;<br/>echo “REQUEST_URI: “, $_SERVER&#91;&quot;REQUEST_URI&quot;&#93;, “<br/>”;<br/>echo “SCRIPT_NAME: “, $_SERVER&#91;&quot;SCRIPT_NAME&quot;&#93;, “<br/>”;<br/>echo “PHP_SELF: “, $_SERVER&#91;&quot;PHP_SELF&quot;&#93;, “<br/>”;<br/>echo “SCRIPT_FILENAME “, $_SERVER&#91;&quot;SCRIPT_FILENAME&quot;&#93; , “<br/>”;<br/><br/>// 把 test2.php 包含进来, 在 test2.php 里输出上面的变量,看有什么不同:<br/>include_once(”test2/test2.php”);<br/><br/>?&gt; </div><br/><br/>来源：http://www.marshal.sh.cn/post/489/
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] PHP获取当前url路径的函数及服务器变量 ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>