2017-08-31 90 views
0

我的文件結構如下:PHP的包括一旦產生錯誤

Lib 
    -Models 
    b.php 
    c.php 
    -Controllers 
    a.php 

在a.php只會文件,我想包括b.php。我該怎麼做呢?一切我嘗試產生這種錯誤:

未能打開流:

我試過沒有這樣的文件或目錄:

include_once '..\Models\b.php'; 
include_once '\..\Models\b.php'; 
include_once $_SERVER['DOCUMENT_ROOT'] .'\Models\b.php'; 
include_once __DIR__ .'\Models\b.php'; 

&其他一些

編輯! 正斜線也不起作用。我也試過如下:

include_once '../Models/b.php'; 
include_once '/../Models/b.php'; 
include_once $_SERVER['DOCUMENT_ROOT'] .'/Models/b.php'; 
include_once __DIR__ .'/Models/b.php'; 
+2

使用斜槓,而不是反斜槓。 – MrTux

+0

@MrTux我試過了,它不起作用。 –

+0

爲了調試的目的,您是否回顯了'__DIR__'? – MrTux

回答

0

一起來,找出哪些目錄中運行包含的代碼是:

die(var_dump(__DIR__)); 

然後,你就會知道是否進入或退出無論文件夾的你英寸

使用realpath($stringPath);將字符串轉換像/var/www/site/something/../data/file.php的真實路徑,​​

這是阿爾斯Ø值得定義WEB_ROOT常數,你可以使用:

define('WEB_ROOT', $_SERVER['DOCUMENT_ROOT']); 

那麼你可以說require_once realpath(WEB_ROOT.$filePath);