Chinaunix首页 | 论坛 | 博客
  • 博客访问: 137509
  • 博文数量: 50
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 482
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-02 23:43
文章分类

全部博文(50)

文章存档

2017年(1)

2010年(1)

2008年(5)

2007年(25)

2006年(18)

我的朋友

分类: 系统运维

2007-12-09 21:51:11

    php 相对路径以主引用文件为基准,相对路径的拼接将抹煞被引用文件之间的包含关系。在多层引用中,不管被引用文件是直接还是间接地引用了另外的文件,对主引用文件来说,它们都是直接引用。
    下面的程序在第二篇参考文件提出的程序基础上略作修改而成。

    /*
    * 动态获取主引用文件相对于应用程序根目录的相对路径,存于常量GO2ROOT中
    * 如果主引用文件为 www/mysite/a.php,    则 GO2ROOT == "./"
    * 如果主引用文件为 www/mysite/a/b.php,   则 GO2ROOT == "../"
    * 如果主引用文件为 www/mysite/a/b/c.php,  则 GO2ROOT == "../../"
    * 依此类推...
    *
    * 除引用本文件外,其余包含文件引用格式为“相对路径/绝对路径”(示例):
    *        include(GO2ROOT.“absoult_path/a.php");
    * GO2ROOT      表示主引用文件相对于应用程序根目录的相对路径
    * absoult_path 表示被引用文件相对于应用程序根目录的绝对路径
    *
    * GO2ROOT 常量值末尾包含了路径的"/"符号,在引用时不要再加"/"
    * example:
    *        correct: GO2ROOT."images/logo.gif"
    *        wrong:   GO2ROOT."/images/logo.gif"
    */
    if(!defined(GO2ROOT)) define(GO2ROOT,go2root());
    function go2root(){
        $path_self = ($_SERVER['PHP_SELF'] == "" ) ? $_SERVER['REQUEST_URI'] :                           $_SERVER['PHP_SELF'];
        $path_array = explode("/",$path_self);//分割目录
        $path_count = count($path_array);//统计目录层数
        $path_root = "";
        //原程序没有 if() 判断,只有 for 循环,且 $i < $path_count -2
        if($path_count == 3) $path_root = './';// 指这种情况: mysite/a.php
        else if($path_count >3){
            for ($i=0; $i < $path_count - 3; $i++)
            {    
            //    print_r($path_array);//调试信息
                $path_root = '../'.$path_root;
            }
        }
        return $path_root;
    }
?>

另两篇参考:




阅读(1395) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-07-31 23:25:15

SAP99,支持下,也欢迎访问我的博客, SAP资料多多 http://sap99.cublog.cn PA系列教材 web_dynpro_for_java Web_Dynpro_for_abap abap资料-在SAP中查询TABL SAP实施顾问宝典 SAP配置(录像)-维护供应 SAP配置(录像)-定义税务 sap全面概述中文