处理相对路径的更好方法

时间:2011-03-04 00:30:47

标签: php

我继承了以前开发人员使用下面的意大利面条代码处理导航,图片和脚本项目的相对路径的网站。

if(substr_count($_SERVER['REQUEST_URI'], "/") <= 1){
    define('NAV', '');
    define('IMG', 'i/');
    define('INC', 'inc/');
}else{
    $z = 0;
    while($z < $i) {
        $current_pos .= '../';
        $z++;
    }
    define('NAV', $current_pos);
    define('IMG', $current_pos.'i/');
    define('INC', $current_pos.'inc/');
}

在标记中使用它看起来像这样:

<a href="<? echo NAV; ?>index.php"><img src="<? echo IMG; ?>spacer.gif" alt="home" /></a>

这个网站充斥着这些;让它难以移动。我需要一个更好的解决方案,而不必涉及所有页面进行更改。使用getcwd()但它并不可靠。谢谢!

1 个答案:

答案 0 :(得分:3)

通常使用__FILE__常量查找当前文件和周围目录的位置很方便:

define('APP_PATH', dirname(__FILE__) . "/");
$img = APP_PATH . "img/";
$js = APP_PATH . "js/";
// etc

// For includes...
require_once(APP_PATH . "include/file.php");
require_once(APP_PATH . "../upperleveldir/file2.php");