2012-01-31 71 views
7

我想找到一種方法,使include_once();路徑從開始目錄開始,然後找到路徑,例如而不是../../../path/to/file我會有/path/to/file。如果我不這樣做/path/to/file它說沒有這樣的文件或目錄,這裏是我的直接代碼php include_once path

<?php 
include_once("/assets/page_assets.php"); 
?> 
+2

'路徑開始網絡服務器的根? '/ path/to/file'是文件系統根目錄的路徑! – Cheery 2012-01-31 20:40:09

回答

12

如果你有一個Apache服務器

<?php 
include_once($_SERVER['DOCUMENT_ROOT'] . "/assets/page_assets.php"); 
?> 

"/assets/page_assets.php"意味着from the root of the disk,不從的根文件夾服務器。如果您正在討論其他一些beginning directory,則將其作爲單獨的常量/變量定義爲物理路徑(服務器文件系統中的路徑,而不是Web路徑),並將其前置到包含的路徑中,如上所示。

0

chdir($_SERVER['DOCUMENT_ROOT']);

啓動腳本現在你可以調用include("path/to/file.php");,它將開始從根目錄看。

1

要做到這一點,你必須使用根路徑。在某些情況下,這可能看起來像/var/www/mysite.com/assets/page_assets.php。找到這條路徑的一種方法是使用__FILE__(這是2在前面和後面都強調)。如果你從一個文件迴應,它會告訴你完整的路徑。您應該可以使用它來設置正確的完整路徑。

2

您可以指定包括路徑明確:

<?php ini_set('include_path',ini_get('include_path').':../../../:'); ?> 

但作爲爽快的評論中提到,你必須包括你的文件,而不斜線:從一開始就從directory`

<?php 
include_once("assets/page_assets.php"); 
?>