中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中$_SERVER['SCRIPT_NAME']與$_SERVER['SCRIPT_FILENAME']有什么不同

發布時間:2021-11-16 16:02:28 來源:億速云 閱讀:202 作者:iii 欄目:大數據

這篇文章主要講解了“php中$_SERVER['SCRIPT_NAME']與$_SERVER['SCRIPT_FILENAME']有什么不同”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php中$_SERVER['SCRIPT_NAME']與$_SERVER['SCRIPT_FILENAME']有什么不同”吧!

$_SERVER['SCRIPT_NAME']、$_SERVER['SCRIPT_FILENAME']及__FILE__不同

在PHP中,有時需要知道腳本所處的位置,這時會用到$_SERVER['SCRIPT_NAME']、$_SERVER['SCRIPT_FILENAME']及__FILE__。那么他們之間有什么不同呢?

1、$_SERVER['SCRIPT_NAME']
先說 $_SERVER['SCRIPT_NAME'] ,它是包含當前運行腳本的路徑,這是從客戶端來看的路徑。假如你訪問的URL地址為 http://www.yourdomain.com/test/test.php,那么在腳本中 $_SERVER['SCRIPT_NAME'] 將會是 /test/test.php 。如果你想引用腳本自身,例如把一個表單提交給自己處理時,這可以用這個。
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="get">

2、$_SERVER['SCRIPT_FILENAME']
$_SERVER['SCRIPT_FILENAME'] 也是包含當前運行腳本的路徑,與 $_SERVER['SCRIPT_NAME'] 不同的是,這是服務器端的絕對路徑。假如你訪問的URL地址為 http://www.yourdomain.com/test/test.php,那么在腳本中 $_SERVER['SCRIPT_FILENAME'] 可能會是 /home/a88888888/public_html/test/test.php (前一部分路徑因服務器而異)。說得通俗一點,這就是服務器硬盤上的路徑。

3、__FILE__
__FILE__是包含腳本文件本身的絕對路徑。它與$_SERVER['SCRIPT_FILENAME']有點不同,下面看一個實例。假設a.php包含了b.php。

test/a.php:
<?php include("b.php"); ?>

那 么在b.php中,$_SERVER['SCRIPT_FILENAME']可能會是 /home/a88888888/public_html /test/a.php。雖然$_SERVER['SCRIPT_FILENAME']是在b.php內,但b.php是在a.php內運行的,因此得到 的是a.php的路徑。而在b.php中,__FILE__可能會是 /home/a88888888/public_html/test/b.php, 這是__FILE__所處的真正位置。
 

另外還有一個$_SERVER['PHP_SELF'],看上去似乎和$_SERVER['SCRIPT_NAME']一樣,不過如果你訪問的URL地址為 http://www.yourdomain.com/test/test.php/foo.bar,那么 $_SERVER['PHP_SELF'] 將會是 /test/test.php/foo.bar。服務器獲取當前文件名時會用到!

來自  http://hi.baidu.com/lovehosejing/item/96af172986fb55929c63d1ec

PHP $_SERVER['SCRIPT_FILENAME'] 與 __FILE__

通常情況下,PHP $_SERVER['SCRIPT_FILENAME'] 與 __FILE__ 都會返回 PHP 文件的完整路徑(絕對路徑)與文件名:

<?php
echo 'SCRIPT_FILENAME 為:',$_SERVER['SCRIPT_FILENAME'];
echo '<br />';
echo '__FILE__ 為:',__FILE__;
?>

上述測試代碼拷貝至 test.php 并訪問該文件(http://127.0.0.1/php/test.php),得到如下結果:

SCRIPT_FILENAME 為:E:/web/html/php/test.php
__FILE__ 為:E:\web\html\php\test.php

提示:在 windows 平臺測試,得到結果如上所示可能會出現路徑分隔符的細微差別。

$_SERVER['SCRIPT_FILENAME'] 與 __FILE__ 區別

盡管 $_SERVER['SCRIPT_FILENAME'] 與 __FILE__ 非常相似,但在文件被 include 或 require 包含的時候,二者還是有細微區別。

將上述測試代碼拷貝至D:\xampp\htdocs\ZZZZ\test\test.php ,然后在剛才的 test.php 文件內包含 inc.php :

<?php
include 'common/inc.php';
?>

這時候再訪問 test.php 文件時,輸出結果:

SCRIPT_FILENAME 為:D:/xampp/htdocs/ZZZZ/test/test.php
SCRIPT_NAME   為   "/ZZZZ/test/test.php" 
PHP_SELF   為    "/ZZZZ/test/test.php"

__FILE__ 為:D:\xampp\htdocs\ZZZZ\test\inc.php

可見二者的差別是:$_SERVER['SCRIPT_FILENAME'] 反映的是當前執行程序的絕對路徑及文件名;__FILE__ 反映的是原始文件(被包含文件)的絕對路徑及文件名。

感謝各位的閱讀,以上就是“php中$_SERVER['SCRIPT_NAME']與$_SERVER['SCRIPT_FILENAME']有什么不同”的內容了,經過本文的學習后,相信大家對php中$_SERVER['SCRIPT_NAME']與$_SERVER['SCRIPT_FILENAME']有什么不同這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

武鸣县| 垦利县| 体育| 行唐县| 胶州市| 招远市| 鹤山市| 锦屏县| 松滋市| 奉新县| 辉县市| 兴山县| 武鸣县| 徐州市| 云阳县| 淮南市| 涟源市| 轮台县| 马边| 阳曲县| 长宁区| 连江县| 庆云县| 昌吉市| 珠海市| 松原市| 平果县| 修武县| 五大连池市| 东光县| 沧源| 阳信县| 繁峙县| 沙河市| 镇远县| 昌邑市| 高邑县| 玉环县| 吴旗县| 柏乡县| 云梦县|