2010-05-25 80 views
0

如何獲取當前正在執行的PHP腳本的URL?如何獲取當前正在執行的PHP腳本的URL?

例如,URL http://www.domain.com/folder/script.php發送請求到/var/www/domain/folder/script.php

script.php中,我想回顯http://www.domain.com/folder/(不是/var/www/domain/folder/,而不是http://www.domain.com/folder/script.php)。什麼是最簡單的方法來做到這一點?

回答

2

這不是複雜的,但這裏有雲:

<?php 
    $scriptFolder = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://'; 
    $scriptFolder .= $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']); 
    echo $scriptFolder; 
?> 
+2

可能你想學習dirname()函數 – 2010-05-25 05:58:08

+1

更好的解決方案可能使用$ _SERVER ['SCRIPT_NAME']而不是$ _SERVER ['REQUEST_URI']。那麼「https://」呢? – powerboy 2010-05-25 06:04:20

+1

@powerboy:你讀過關於$ _SERVER的PHP文檔嗎?我相信php.net及其評論涵蓋了你所要求的一切。 – 2010-05-25 06:08:15

3

一個簡單的Google搜索就能解答您的問題。結果如下。

http://php.about.com/od/learnphp/qt/_SERVER_PHP.htm

+0

$ _SERVER ['PHP_SELF'],$ _SERVER ['REQUEST_URI']和$ _SERVER ['SCRIPT_NAME']以腳本文件名返回路徑,而不是單獨路徑。我想知道是否有單獨設置爲路徑的變量。 – powerboy 2010-05-25 05:45:05

+0

@powerboy nope。 – 2010-05-25 05:57:18

+1

請參閱下面的Mihai Iorga解決方案。 PHP並沒有提供這種功能,但大約半分鐘的時間,您就可以獲得所需的功能。這比在SO上發佈花費的時間更少。 – 2010-05-25 05:58:46

0

我一直在尋找這個問題的答案,似乎有不容易的。

然後它打我:這是因爲它並不總是可以得到當前的腳本網址。

PHP可以在文件系統中的任何位置包含一個文件,只要運行該進程的用戶可以訪問它,它就可以工作。但是,這意味着可以在網絡服務器的根目錄之外包含腳本 - 因此不可能有網址。我相信那是因爲沒有直接的功能來做到這一點。

+0

這並不是問題的答案。一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將能夠[評論任何職位](http://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/13920864) – pedrouan 2016-10-09 07:15:39

+0

那麼,這是一個沒有答案的問題,我解釋了爲什麼我認爲是這樣。 – 2016-10-11 21:14:56

相關問題