六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 64|回复: 0

PHP的相对路径问题

[复制链接]

升级  31.33%

27

主题

27

主题

27

主题

秀才

Rank: 2

积分
97
 楼主| 发表于 2013-1-28 09:05:24 | 显示全部楼层 |阅读模式
 
在PHP中require,include一个文件时,大都是用相对路径,是个很头疼的问题。
 
例如:
 <web>(网站根目录)
 ├<A>文件夹
 │ │
 │ └1.php
 ├<B>文件夹
 │ │
 │ └2.php
 └index.php
 
 
问题:在1.php中通过include(“../B/2.php”)来引入B目录下的2.php文件;
 在index.php中通过include(“A/1.php”)来引入A目录下的1.php文件;
 运行出来当然会出现问题,找不到../B/2.php文件。 
 
 
记住一个原则,所有的包含语句最后都转换为以包含文件路径为基准的包含路径
建议使用一个基本路径来作为所有的路径参考,例如 __FILE__ 
或者 $_SERVER['DOCUMENT_ROOT']

 
__FILE__:(适合各种情况)

在config文件里配置站点根目录 

define( "WEB_ROOT ",   dirname(__FILE__)   ); 

config文件放到网站的根目录里, 

其它文件包含配置文件, 

包含其它文件时根据WEB_ROOT来定位即可。 

require_once(   WEB_ROOT   .   "/a.php "   );

 

 

$_SERVER['DOCUMENT_ROOT'],适合非虚拟主机
(Alias)
情况

<?phpif (!defined("WETSITE_BASE_DIR"))define("WETSITE_BASE_DIR", $_SERVER['DOCUMENT_ROOT'].'/Clare/');    require_once(WETSITE_BASE_DIR.'includes/global.inc.php');?>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表