2011-03-04 5 views
2

이전 개발자가 아래 스파게티 코드를 사용하여 nav, image 및 script 항목의 상대 경로를 처리하는 사이트를 상속했습니다. 그것은 이런 식으로 뭔가 보일 것 마크 업에서 사용상대 경로를 더 잘 처리하는 방법

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()를 사용하고 있었지만 안정적이지는 않습니다. 감사!

답변

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"); 
+0

감사합니다, 나는이 시도 줄 것이다. – gnome

관련 문제