淺談php中使用絕對路徑和相對路徑_PHP教程

來源:互聯網
上載者:User
下面看兩段代碼:

代碼一:相對位址訪問

[php]


echo $_SERVER['DOCUMENT_ROOT'];
?>


代碼二:絕對位址訪問

[php]


echo $_SERVER['DOCUMENT_ROOT'];
?>


先把這兩個放一下,讓我們來講純的html代碼(ps:現在是測試,那麼我就寫的簡略點,但是能得出結果)

代碼一:相對位址 (test_image_1.html)

[html]

代碼二:絕對位址 (test_image_2.html)
[html] view plaincopy

(ps:圖片目錄:C:/Program Files/Zend/Apache2/htdocs/1.jpg
html目錄:C:/Program Files/Zend/Apache2/htdocs/test_image/)

備忘:本機上安裝了appache,是Zend的融合包中的。

兩種方式,第一種是直接雙擊開啟檔案,test_image_1和test_image_2都是可以開啟的,URL中顯示的是C:/Program Files/Zend/Apache2/htdocs/test_image/test_image_1,這樣圖片都是可以顯示的。

第二種方式,通過appache訪問,使用URL:127.0.0.1/test_image/test_image_1訪問,結果是使用相對路徑的可以正常實現,絕對路徑的不能顯示。


查了很多資料,終於可以得出結論了。直接開啟html檔案,因為在你的電腦下,那麼絕對路徑就可以輕鬆的訪問。但是通過WEB訪問,那麼WEB預設的根目錄是htdocs/,在你電腦中,這個目錄是C:/Program Files/Zend/Apache2/htdocs/但是WEB不怎麼認為,在它的認識裡面不知道有c:這玩意兒。所以你認為的絕對路徑,是在你電腦裡面的絕對路徑,但是通過WEB不認識這個路徑。

正確的方式應該是如下兩代碼:

代碼一:相對位址 (test_image_1.html)

[html]

相對路徑完全沒問題。 所以一般都是建議使用相對路徑便於移植。
代碼二:絕對位址 (test_image_2.html)
[html] view plaincopy

這裡的跟目錄是/所以這樣才是絕對路徑。
如果你的圖片,換了個位置,在你電腦絕對路徑下是C:/Program Files/Zend/Apache2/htdocs/111/222/333/1.jpg

那麼代碼就應該寫成:

[html]

綜上所訴,不要把電腦的絕對路徑和WEB伺服器的絕對路徑搞混了。
經過上面的講解,應該理解html方式的絕對路徑和相對路徑了。

那麼讓我們來看看文章開頭給出的PHP的形式。

代碼一:相對位址訪問 test_image_1.php
[php]


echo $_SERVER['DOCUMENT_ROOT'];
?>


代碼二:絕對位址訪問 test_image_2.php
[php] view plaincopy


echo $_SERVER['DOCUMENT_ROOT'];
?>

首先要理解PHP的執行方式,當你訪問一個PHP的時候,會觸發此PHP運行,PHP經過appache解析後(言外之意,就是說php已經運行完了,顯示了些結果),產生了一下HTML代碼,也就是簡單的說,到你手上的php,其實就可html一樣。php是在伺服器端運行完畢然後再送到你的手裡的。所以剛開始我也沒完全理解,用php做一些動作,比如提交表格什麼的,其實不是php的事了,而是html的動作。到你手裡的,能顯示的,是披著.php尾碼的,html代碼。
在說說在PHP眼裡的絕對位址,當然,php認識你電腦的絕對路徑了,比如你要用php開啟一個檔案,用php讀取本機上一個圖片的大小,解析度什麼的,完全可以使用絕對路徑(相對路徑更沒有問題)。

但是PHP執行完後,將會把結果在你的網頁端顯示,那麼比如:

[php]

這代碼,雖然寫在PHP檔案當中,但是他只是HMTL代碼,因此此時就不光PHP的事了,而是html上馬了,而HTML和WEB有關,WEB不認識你這個路徑了(原因上面已經講了)。所以現在是WEB不認識電腦的絕對路徑,而不是你的PHP不認識。

在提一點,WEB的根目錄是/但是,你的圖片在它認為的根目錄上一級,也是可以訪問的,代碼如下:

[html]
img src="../../1.jpg" />
(原先1.jpg在跟目錄下,而html代碼放在/image_test/下,所以要../1.jpg,才能訪問,
而現在1.jpg在根目錄上一級,那麼我們就再回退一級就可以訪問到了,../../1.jpg)
作者:wolinxuebin

http://www.bkjia.com/PHPjc/478111.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478111.htmlTechArticle下面看兩段代碼: 代碼一:相對位址訪問 [php] meta http-equiv=Content-Typecontent=text/html;charset=GBK ?php echo $_SERVER[DOCUMENT_ROOT]; ? img src=../1.jpg / 代碼...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.