关于多层目录中文件嵌套引用的问题。。。。。。。。。。。。。。。。。 include_once("./lib/adodb/adodb.inc.php"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦,是相对路径的问题啊。解决方法一: 使用绝对于web根的路径,例如:include_once("/site/lib/dbwrapper.php");解决方法二: 在每个文件的开头加一段话,<?if(!defined('LIBPATH')) define('LIBPATH', './**/');?>你的文件的修改方法:test.php里面:<?if(!defined('LIBPATH')) define('LIBPATH', './lib/');include_once("./lib/dbwrapper.php");//...........................................?>dbwrapper.php里面:<?if(!defined('LIBPATH')) define('LIBPATH', './');include_once(LIBPATH."adodb/adodb.inc.php");//...........................................?>方法3:推荐在你的站点的顶级目录加一个config.inc文件,文件用来记录各种饮用的路径----------config.inc----------<?define('ROOT', 'c:/apache/website/');define('LIB', ROOT."lib/");define('TPL', ROOT."tpl/");//.....?>然后让你的所有的网页的主文件都包含这个文件,通过这个文件来定义你引用的文件的路径例如:include_once(LIBPATH."adodb/adodb.inc.php");这样好处: 可以统一的记录你的文件的存放的位置; 不会出现你说的那种问题; 整个网站的文件部分更换位置的时候,不用改动每个php文件,只要更改config.inc就可以。第三种方法你可以自己仔细的考虑研究一下。这种方法可能全天的phper都在用,呵呵。 可能我没说清楚:我也知道这样可行,但是如果在AAA目录下有一个a.php也要引用那个dbwrapper.php怎么办呢? -------------------------------------可能我没说清楚:我也知道这样可行,但是如果在AAA目录下有一个a.php也要引用那个dbwrapper.php怎么办呢?-------------------------------------你仔细看看我写的内容,可以的,难道我又没说清楚?----------------------------------招聘语文老师一名,呵呵。---------------------------------- 前面不要加.直接include("lib/dbwrapper.php"); 我写程序都会是将所有的文件,不管那里,不管 >< ><全部一概调到一个文件上去执行。省了很多麻烦,也没有这些烦恼仅供参考! -webroot(是web发布根目录) test.php -lib(目录) dbwrapper.php -adodb(目录) adodb.inc.php -AAA -a.php就是说所有的文件 ./lib/dbwrapper.php ./lib/adodb/adodb.inc.php ./AAA/a.php都通过test.php去调用执行。 dbwrapper.php里面:include_once("adodb/adodb.inc.php");嵌入文件的路径应该是绝对路径。当使用相对路径时,则被处理成相对于当前文件所在目录在网站中若使用在多层目录中存放嵌入文件时,路径始终是一个大问题。解决的办法是使所有路径都写作从网站根目录算起的格式,比如$path/lib/dbwrapper.php$path/lib/adodb/adodb.inc.php$path 可取$_SERVER[DOCUMENT_ROOT']的值若$_SERVER[DOCUMENT_ROOT']不可用或不准确的话可以1、在首页用session保存路径2、在网站根目录下做一获取根目录路径的程序比如:path.php<?phpecho gwetcwd();?>嵌入文件时写作:include file_get_contents("http://localhost/path.php")."/lib/dbwrapper.php";include file_get_contents("http://localhost/path.php")."/lib/adodb/adodb.inc.php"; 一般给出相对路径,而相对路径都以网站,所在的目路的根目路为基础,这样就可了,我建议把所有的文件路径放在一个文件之内,当然最好前如的html页面与后台的.php页面分成不同的目录 关于php一个重大问题~~高手入 关于函数__construct的问题 利用 php5 中 的 domxml 实现取一个结点的 xml 文本 php代码问题 关于curl自动跳转 FPDF创建PDF时的问题 求一正则 用ajax发起一个后台处理程序,关掉页面程序也无法停止,什么原因? 公司主页想挂一个论坛,不知该如何操作? 使用composer安装依赖,为什么安装了许多没有require的依赖? 小小的一问。。 显示饼图的问题,熟悉PHP生成图象的请进。
解决方法一:
使用绝对于web根的路径,例如:include_once("/site/lib/dbwrapper.php");
解决方法二:
在每个文件的开头加一段话,
<?
if(!defined('LIBPATH')) define('LIBPATH', './**/');
?>
你的文件的修改方法:
test.php里面:
<?
if(!defined('LIBPATH')) define('LIBPATH', './lib/');
include_once("./lib/dbwrapper.php");
//...........................................
?>dbwrapper.php里面:
<?
if(!defined('LIBPATH')) define('LIBPATH', './');
include_once(LIBPATH."adodb/adodb.inc.php");
//...........................................
?>方法3:推荐
在你的站点的顶级目录加一个config.inc文件,文件用来记录各种饮用的路径
----------config.inc----------
<?
define('ROOT', 'c:/apache/website/');
define('LIB', ROOT."lib/");
define('TPL', ROOT."tpl/");
//.....
?>然后让你的所有的网页的主文件都包含这个文件,通过这个文件来定义你引用的文件的路径
例如:
include_once(LIBPATH."adodb/adodb.inc.php");这样好处:
可以统一的记录你的文件的存放的位置;
不会出现你说的那种问题;
整个网站的文件部分更换位置的时候,不用改动每个php文件,只要更改config.inc就可以。第三种方法你可以自己仔细的考虑研究一下。这种方法可能全天的phper都在用,呵呵。
可能我没说清楚:我也知道这样可行,但是如果在AAA目录下有一个a.php也要引用那个dbwrapper.php怎么办呢?
-------------------------------------你仔细看看我写的内容,可以的,难道我又没说清楚?----------------------------------
招聘语文老师一名,呵呵。
----------------------------------
直接include("lib/dbwrapper.php");
test.php
-lib(目录)
dbwrapper.php
-adodb(目录)
adodb.inc.php
-AAA
-a.php就是说所有的文件
./lib/dbwrapper.php
./lib/adodb/adodb.inc.php
./AAA/a.php都通过test.php去调用执行。
include_once("adodb/adodb.inc.php");嵌入文件的路径应该是绝对路径。当使用相对路径时,则被处理成相对于当前文件所在目录在网站中若使用在多层目录中存放嵌入文件时,路径始终是一个大问题。
解决的办法是使所有路径都写作从网站根目录算起的格式,比如
$path/lib/dbwrapper.php
$path/lib/adodb/adodb.inc.php$path 可取$_SERVER[DOCUMENT_ROOT']的值
若$_SERVER[DOCUMENT_ROOT']不可用或不准确的话可以
1、在首页用session保存路径
2、在网站根目录下做一获取根目录路径的程序
比如:
path.php
<?php
echo gwetcwd();
?>
嵌入文件时写作:
include file_get_contents("http://localhost/path.php")."/lib/dbwrapper.php";
include file_get_contents("http://localhost/path.php")."/lib/adodb/adodb.inc.php";