2010-01-25 6 views
0

저는 콘텐츠 관리 시스템 (nakid)에서 작업 해 왔으며 가장 어려운 과제 중 하나는 파일 탐색입니다. 파일 경로 및 설정이 로컬 및 원격 서버에서 작동하는지 확인하고 싶습니다.PHP 파일 탐색 (로컬 + 원격)

first.php (모든 페이지에서 사용) : 나는 디렉토리를 원하기 때문에

이 프로그램은
//Set paths to nakid root 
$core['dir_cur'] = dirname(__FILE__); 
$core['dir_root'] = $_SERVER['DOCUMENT_ROOT']; 
//Detect current nakid directory 
$get_dirnakid_1 = str_replace("\\","/",dirname(__FILE__));//If on local 
$get_dirnakid_2 = str_replace("/includes/php","",$get_dirnakid_1); 
$get_dirnakid_3 = str_replace($_SERVER['DOCUMENT_ROOT'],"",$get_dirnakid_2); 
//remove first "/" 
if(substr($get_dirnakid_3, 0,1) == "/"){ 
$get_dirnakid_3 = substr($get_dirnakid_3, 1); 
} 
//Set some default vars 
$core['dir_nakid_path'] = $get_dirnakid_3; 
$core['dir_nakid'] = $core['dir_root']."/".$core['dir_nakid_path'];//We need to get system() for this real value - below 

이 방법은 나는 또한 그것을 한 이유입니다 지금 내 설정은 다음과 같이 꽤 많은 일이있다 (/ nakid) (/ cms) (/ admin/cms)

내가 잘못된 방법을하고 있거나 모든 것을 처리하는 간단한 방법이 있습니다. 이.

는 코드에 대해 자세히 살펴 얻을하는 데 도움이 모든 것이 어떻게 사용되고 있는지 경우에 나는 모두가 nakid.org에서이

편집 : 그냥보다 약간 다릅니다 제가 nakid.org에서이 실현 내 새로 게시 된 코드,하지만 같은 생각은 여전히 ​​내가하려고하는 것에 적용됩니다.
http://www.php.net/manual/en/function.getcwd.php

답변

1

전반적으로, 그것은 나에게 좋아 보이는 :

+0

필자는/includes/php를 사용하여 설치 경로 (first.php가/includes/php에 있음)를 확인합니다. 다른 방법으로해야합니까? – kilrizzy

+0

사용자가 시스템에서 경로를 변경하는 방법이 있지만이 초기 설정은 발생하기 전에 발생합니다. – kilrizzy

+0

게시자가 게시하려는 소프트웨어 인 경우 추가 고려 사항으로 " local "과"remote "는 일반적으로 여러분이하고있는 일을 반영하지 않기 때문에 (백 슬래시는 Windows 컴퓨터의 디렉토리 구분자이고 Unix/Linux 및 다른 사람들의 슬래시입니다. 그러나 그 반대의 경우도 있습니다. 윈도우 머신은 "원격"서버 임). –

1

나는 완전히 당신이 얻을하려고 이해,하지만 어쩌면에 getcwd하지 않습니다()는 당신이 보는 것입니다.

당신은 경로 이름에 /\를 변환 할 때 기억 변수가 더 이름을 말하기주고 싶어

수 있습니다 당신이 그 중 하나에 다른 디렉토리 이름과 일치 할 때마다 (예를 들어 nakid_root_dir, nakid_relative_webroot 등등.) 설정, 그들도 str_replace("\\","/"...)해야합니다.

나는 당신이 목표로하는 것을 $get_dirnakid_2으로 이해하지 못합니다. /etc/includes/php/nakid이라는 디렉터리에 응용 프로그램을 설치하면 왜 내 경로가 엉망이됩니까?

어쨌든 이러한 설정을 사용자가 덮어 쓸 수 있도록해야합니다. 때로는 사용자가 DOCUMENT_ROOT에서 가져온 것과 다른 설정을 지정하고 협업하려는 경우가 있습니다.

관련 문제