真的是神了。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的那一句也是从第一个开始的啊。
而且和我的是安装在同一个根目录下的啊。
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文件
你在/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/下。所以找不到了
require dirname(__FILE__).'/global.php';
这个会取到admin/下。所以找不到了
#11
待加载文件不在当前目录下的 路径都错了 能取到才见鬼了
require realpath( dirname(__FILE__) . '/../' ) . 'global.php';
require realpath( dirname(__FILE__) . '/../' ) . 'global.php';
#12
同意
#13
w我也碰到这问题了
#14
我也遇见这个问题了
#15
这是我N年前的帖子啊,居然还有人也遇到这样的问题。
#1
我在Linux下碰到这种情况过,是因为文件的权限问题。但是在Windows下,权限问题比较少见,不过你也可以查一查。
#2
把路径的\替换成/试试,我一般都行的.
#3
那为什么同样的ECSHOP的却可以啊?
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文件
你在/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/下。所以找不到了
require dirname(__FILE__).'/global.php';
这个会取到admin/下。所以找不到了
#11
待加载文件不在当前目录下的 路径都错了 能取到才见鬼了
require realpath( dirname(__FILE__) . '/../' ) . 'global.php';
require realpath( dirname(__FILE__) . '/../' ) . 'global.php';
#12
同意
#13
w我也碰到这问题了
#14
我也遇见这个问题了
#15
这是我N年前的帖子啊,居然还有人也遇到这样的问题。