URL相關
==
SCRIPT_NAME:主要到.后綴(只保留到.php)就結束
PHP_SELF:取問號之前(.php/abc?abc則到/abc結束)----從DocumentRoot(根目錄)到本文件的路徑
QUERY_STRING:取問號之后(.php/abc?abc則為abc)
REQUEST_URI:各種帶
PATH_INFO:保留.php后到問號之前的/abc/bcd格式的字符串
HTTP_HOST:域名(只含域名 不含http等雜物)
DOCUMENT_ROOT:即apache配置文件中指定的DocumentRoot (E:\www\)
SCRIPT_NAME:從DocumentRoot(根目錄)到本文件的路徑+當前文件名(\test\test.php)
PHP_SELF:從DocumentRoot(根目錄)到本文件的路徑+當前文件名(\test\test.php)//不常用
__FILE__:從磁盤開始到本文件的絕對路徑(E:\www\test\test.php)
<?php
//獲取域名或主機地址
echo $_SERVER['HTTP_HOST']."<br />";
//獲取網頁地址
echo $_SERVER['PHP_SELF']."<br />";
//獲取網址參數
echo $_SERVER["QUERY_STRING"]."<br />";
//獲取用戶代理
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'];
//包含端口號的完整url
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
//只取路徑
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
echo dirname($url);
?>
源文件:
test.php
<?php
echo "The SCRIPT_FILENAME: ";
echo $_SERVER['SCRIPT_FILENAME']."
";
echo "The SCRIPT_NAME: ";
echo $_SERVER['SCRIPT_NAME']."
";
echo "The PHP_SELF: ";
echo $_SERVER['PHP_SELF']."
";
echo 'The __FILE__ : ';
echo __FILE__."
";
?>
test2.php:
<?php
include("./test.php");
echo "The end";
?>
結果:
1、直接執行http://127.0.0.1/test.php
The SCRIPT_FILENAME: /w/c/l/test.php
The SCRIPT_NAME: /test.php
The PHP_SELF: /test.php
The __FILE__ : /w/c/l/test.php
2、執行http://127.0.0.1/test2.php
The SCRIPT_FILENAME: /w/c/l/test2.php
The SCRIPT_NAME: /test2.php
The PHP_SELF: /test2.php
The __FILE__ : /w/c/l/test.php
The end
結論:__FILE__永遠是自己所在的文件,其他的都是為別人做嫁衣!
另外,PHP_SELF將會得到pathinfo的部分。如test.php/abc=sd
還有一個'REQUEST_URI',將包含get來的參數,比如test.php?abc=1
-----
[php $_SERVER中的SERVER_NAME 和HTTP_HOST的區別](http://it.oyksoft.com/post/3158/)
- 目錄
- 第一章:PHP簡介、開發環境、基本語法
- 0.0 各類操作系統下環境配置
- 1.0 基本語法和控制符
- 1.1 變量常量
- 1.1.1 顯示數據Echo、Var_dump
- 1.1.2 數據類型
- 1.2 判斷邏輯(if、switch)
- 1.3 循環邏輯(for、while)
- 1.4 數組
- 1.4.1 Foreach循環
- 1.4.2 數組操作
- 1.5 函數
- 1.5.5 編碼規范PSR
- 1.6 魔術變量
- 1.7 超全局變量
- 1.8 時間日期
- 1.9 字符串操作
- 1.10 開發/部署環境配置
- 1.11 PECL 、 Yaf 、 Swoole
- 第二章:PHP+數據庫
- 2.0 SQL入門
- 2.1 PDO連接、操作數據庫
- 2.2 PDO的CURD操作
- 2.3 預處理
- 2.4 SQLite輕量級數據庫
- 2.5 NoSQL數據庫
- 2.6 緩存 、主從復制、集群 、負載均衡
- _連接 + 管理數據庫(過期)
- _增刪查改CURD操作(過期)
- 第三章:PHP面向對象 + 常用功能
- 5.1 面向對象入門
- 5.2 面向對象特性
- 5.3 文件上傳
- 5.4 富文本編輯
- 5.6 MVC框架模式
- 5.7 文件讀取函數
- 5.8 URL相關
- 5.9 Serialize序列化
- 第四章:Cookie+Session+用戶模塊
- 4.1 Cookie
- 4.2 Session
- 4.3 用戶中心
- 4.4 SSO單點登錄
- 4.5 類 C S 架構REST和Oauth用戶中心
- 第五章:Linux基礎+Git入門+遠程部署
- 3.1 Linux基礎
- 3.2 Git使用
- 3.3 遠程部署
- 第六章:PHP框架
- 第七章:PHP安全和測試
- 第八章:包管理工具+PSR代碼規范
- PHP社區代碼規范 PSR
- 第九章:PHP測試 + PHP調試
- 第十章:性能優化+網站架構+第三方服務
- 10.1 云計算和網站架構
- 第十一章:PHP拓展
- 拓展:十二章 PHP爬蟲
- 拓展:十三章 CMS實戰
- 拓展:十四章 微信公眾號開發
- 拓展:第十五章 注釋、API文檔、IDE自動提示
- 拓展:第十六章 API開發
- 附錄:參考資料
- 附錄:實用在線工具
- 實用技巧和常用函數
- Linux下WDCP主機面板配置
- 使用Git部署到MoPass云
- Curl內網訪問封裝函數
- 附錄:開源組件參考