2014-10-02 24 views
-1

當我使用require("/toinclude.php")時,「/」是什麼意思?php中的「/」需要/ include是什麼意思?

  • 它是我的ubuntu的根目錄嗎?

  • 或者它是www目錄apacheset對我?

  • 還是它是當前文件的路徑?這似乎是真的......

更重要的是,我真的很困惑在PHP中使用路徑。它是使「/」在require()/include()表示當前目錄,「/」,在system(...)/exec(...)是 的Linux的根目錄下,並在HTML「/」代碼<form action="/processpost.php">是「www」的目錄阿帕奇集爲了我?

+0

我認爲這是www root。但我不知道關於PHP或Apache的一件事:) – 2014-10-02 07:42:06

+0

你自己嘗試過嗎?啓用錯誤報告並嘗試使用和不使用'/',錯誤消息會告訴你究竟是什麼意思。 – 2014-10-02 07:42:38

+0

/表示文件系統的絕對根,您的網頁放置在/ var/www或/ home/something/public_html/etc.etc某處。 – 2014-10-02 07:44:25

回答

1

在PHP(服務器端)中,以/(至少在基於Unix的系統上)開頭的任何路徑都是文件系統根目錄。在大多數情況下(如果不是全部),這是而不是你想要的。

在HTML(客戶端)中,'/'是URL根目錄。那就是:它直接放在域名後面。例如。在從http://example.com獲取的HTML文件中的/process.php將重定向到http://example.com/process.php。這可能是萬維網根,但也可能是別的東西取決於服務器中的設置。

includerequire使用包含路徑來獲取文件。如果你沒有提供完整的路徑(也就是說,你在開頭省略了/),PHP將從當前目錄開始掃描它在包含路徑中找到的所有目錄。通常情況下,路徑PEAR模塊是在這條道路,所以像這樣的代碼:

include("SomePearModule/Module.class.php"); 

作品,即使它是不是在你的網站上的樹。

更多內容請見documentation

0

這是文字服務器端(文件系統)路徑。那麼,不是總是文字。

這取決於您的服務器設置。如果PHP在監獄chroot中運行,那麼/就PHP而言可能實際上是類似/var/web/chroots/domain.com/或類似的東西。

大多數情況下,您需要某種類型的配置文件,根據腳本實際執行的相對路徑計算出庫和東西的位置,然後分別將該信息傳遞給require()require_once()

喜歡的東西:

<?php 

$base = dirname(__FILE__); 
$Libraries = $base . '/libraries'; 

require_once($Libraries . '/Library.php'); 
?> 

如果你使用任何一種現代的框架中,這通常爲您處理一切意味着它提供了加載的東西。確保根據安裝應用程序的位置確定對require()require_once()的任何調用都不必更改,這一切都是相對於執行的位置而言的。