include dirname(__FILE__).'/include/global.php';为什么ECSHOP的可以,但是我的却不可以?

时间:2021-04-06 12:04:35
一个晚上了,这个问题还是没有解决。
真的是神了。ECSHOP的可以,但是我的这样用却报错。

网站根目录:/
ECSHOP安装目录:/ecshop
我的站点安装目录:/myblog

#################################################
涉及到的文件(对比)

ECSHOP的的文件:/ecshop/admin/index.php
ECSHOP中被引入的文件:/ecshop/includes/init.php

我的相应的文件:/myblog/admin/index.php
我的要引入的文件:/myblog/global.php

################################################
ECSHOP该文件的开头内容(从开头最开头第一行开始)
<?php
/**
ECSHOP的版权注释
**/
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');//就是这一行。
……


我的那个文件,也是从第一行开始
<?php
require dirname(__FILE__).'/global.php';
……
两个文件是一样引入的,但是我的那个却报错。
Warning: require(D:\AppServ\www\myblog\admin/global.php) [function.require]: failed to open stream: No such file or directory in D:\AppServ\www\myblog\admin\index.php on line 2
Fatal error: require() [function.require]: Failed opening required 'D:\AppServ\www\myblog\admin/global.php' (include_path='.;C:\php5\pear') in D:\AppServ\www\myblog\admin\index.php on line 2

########################################################
一个晚上了,还是没有解决
怎么办?
直接抄都不行,而且有的时候可以,有的时候又不可以。今天特别提问,实在是必须得过这一关啊。
另外include 或者require似乎不能使用相对站点根目录来引入,试了很多次每次都失败了。(即,假如该文件位置是/admin/images/a.php,要引入站点内的/global.php的时候不能通过include '/global.php';来引入,这个是是否是真的,但是为什么我试了每次都是不行啊?)

15 个解决方案

#1


我在Linux下碰到这种情况过,是因为文件的权限问题。但是在Windows下,权限问题比较少见,不过你也可以查一查。

#2


把路径的\替换成/试试,我一般都行的.

#3


那为什么同样的ECSHOP的却可以啊?
ECSHOP的那一句也是从第一个开始的啊。
而且和我的是安装在同一个根目录下的啊。

#4


很有可能是权限有关 

#5


dirname(__FILE__)返回的是当前文件的路径比如如果在/etc/path/x.php中,dirname的返回值就是/etc/path,

你在/myblog/admin/index.php中调用dirname(__FILE__)返回的是/myblog/admin,因此你请求的是/myblog/admin/global.php,但是你的文件却是/myblog/global.php,当然读不到文件。

你可以用require('../global.php')

至于ECSHOP可以,也许是因为它也有/ecshop/admin/includes/init.php文件

#6


5楼正解

#7



<?php 
/** 
ECSHOP的版权注释 
**/ 
define('IN_ECS', true); 
require(dirname(__FILE__) . '/includes/init.php');//就是这一行。 
…… 


//我的那个文件,也是从第一行开始 
<?php

error_reporting(E_ALL);

if (dirname(__FILE__) == '')
{
    die('Fatal error code: 0');
}

define (YOUDIR,preg_replace('\\','/' ,dirname(__FILE__))); 

require(YOUDIR.'/global.php'); 

//…… 
//两个文件是一样引入的,但是我的那个却报错。




你这样做一般没有问题!!!

#8


No such file or directory

#9


D:\AppServ\www\myblog\admin/global.php

两种斜杆都不一样

#10


你的当前文件在/myblog/admin/下边 但是你的global.php 在/myblog/下边

require dirname(__FILE__).'/global.php'; 

这个会取到admin/下。所以找不到了

#11


待加载文件不在当前目录下的   路径都错了  能取到才见鬼了

require realpath( dirname(__FILE__) . '/../' ) . 'global.php';

#12


同意
引用 11 楼 gzty 的回复:
待加载文件不在当前目录下的  路径都错了  能取到才见鬼了

require realpath( dirname(__FILE__) . '/../' ) . 'global.php';

#13


w我也碰到这问题了

#14


我也遇见这个问题了

#15


引用 14 楼 bighead1989 的回复:
我也遇见这个问题了



include dirname(__FILE__).'/include/global.php';为什么ECSHOP的可以,但是我的却不可以? 这是我N年前的帖子啊,居然还有人也遇到这样的问题。

#1


我在Linux下碰到这种情况过,是因为文件的权限问题。但是在Windows下,权限问题比较少见,不过你也可以查一查。

#2


把路径的\替换成/试试,我一般都行的.

#3


那为什么同样的ECSHOP的却可以啊?
ECSHOP的那一句也是从第一个开始的啊。
而且和我的是安装在同一个根目录下的啊。

#4


很有可能是权限有关 

#5


dirname(__FILE__)返回的是当前文件的路径比如如果在/etc/path/x.php中,dirname的返回值就是/etc/path,

你在/myblog/admin/index.php中调用dirname(__FILE__)返回的是/myblog/admin,因此你请求的是/myblog/admin/global.php,但是你的文件却是/myblog/global.php,当然读不到文件。

你可以用require('../global.php')

至于ECSHOP可以,也许是因为它也有/ecshop/admin/includes/init.php文件

#6


5楼正解

#7



<?php 
/** 
ECSHOP的版权注释 
**/ 
define('IN_ECS', true); 
require(dirname(__FILE__) . '/includes/init.php');//就是这一行。 
…… 


//我的那个文件,也是从第一行开始 
<?php

error_reporting(E_ALL);

if (dirname(__FILE__) == '')
{
    die('Fatal error code: 0');
}

define (YOUDIR,preg_replace('\\','/' ,dirname(__FILE__))); 

require(YOUDIR.'/global.php'); 

//…… 
//两个文件是一样引入的,但是我的那个却报错。




你这样做一般没有问题!!!

#8


No such file or directory

#9


D:\AppServ\www\myblog\admin/global.php

两种斜杆都不一样

#10


你的当前文件在/myblog/admin/下边 但是你的global.php 在/myblog/下边

require dirname(__FILE__).'/global.php'; 

这个会取到admin/下。所以找不到了

#11


待加载文件不在当前目录下的   路径都错了  能取到才见鬼了

require realpath( dirname(__FILE__) . '/../' ) . 'global.php';

#12


同意
引用 11 楼 gzty 的回复:
待加载文件不在当前目录下的  路径都错了  能取到才见鬼了

require realpath( dirname(__FILE__) . '/../' ) . 'global.php';

#13


w我也碰到这问题了

#14


我也遇见这个问题了

#15


引用 14 楼 bighead1989 的回复:
我也遇见这个问题了



include dirname(__FILE__).'/include/global.php';为什么ECSHOP的可以,但是我的却不可以? 这是我N年前的帖子啊,居然还有人也遇到这样的问题。