2017-08-31 82 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);