2012-10-18 9 views
0

기본적으로 나는 PHP 스크립트와 폴더를 가지고 그 폴더에 스크립트와 다른 폴더가 있습니다. 각 폴더의 index.php 스크립트에 같은 헤더 파일을로드하고 싶습니다. 포함 할 스크립트는 inclues 폴더에있는 nav.php입니다.URL이 포함 된 문자열에서 현재 폴더를 가져 오는 방법은 무엇입니까?

if getcwd() = 'Folder2'{ 
    include('../../includes/nav.php'); 
}else{ 
    include('../includes/nav.php'); 

그러나 문제는()에 getcwd 문자열의 전체 경로를 반환하지만, 난 그냥 CUR 디렉토리 이름을 원하는 :

트리

includes 
    nav.php 
Folder1 
    header.php 
    index.php 
    Folder2 
     index.php 

내가이 작업을 수행 할 수 있습니다. 디렉토리 이름 이외의 모든 것을 제거하도록 문자열을 구체적으로자를 수 있습니까? 모든 솔루션은 알아두면 좋지만, 특히 그 방법으로 문자열을 잘라내는 기능에 관심이 있습니다.

답변

0

참조 기능 :

basename 

읽기 그것에 대해 여기 :

basename(getcwd()) 

http://php.net/manual/en/function.basename.php 경로에서 당신에 폴더 이름을 반환해야합니다.

#> pwd 
/home/user 
#> php 
<?php 
echo getcwd() . "\n" ; 
echo dirname(getcwd()) . "\n" ; 
echo basename(getcwd()) . "\n" ; 
?> 
/home/user 
/home 
user 
메이크
+0

나는 경로에 포함 된 파일이 현재 경로와 작동하며 getcwd()에서 반환 된 문자열이 아니라고 생각합니다. – Duice352

+0

??? 왜 -2가 내 대답을 가리 킵니까? 화살표를 클릭하는 대신 잘못 쓰여진 것을 설명하는 것은 어떻습니까? – Grzegorz

+0

그것은 그것을했던 나 wask wasn – Duice352

1

나이 PHP에 에 _ _ DIR 또는이 dirname (_ _FILE)를 상대적인 경로를 포함 여기서 기본 이름 및이 dirname의 일례이다. 또는 $ _SERVER [ 'DOCUMENT_ROOT']. 현재 디렉토리에 연결하지 마십시오!

include(__DIR__.'/../../includes/nav.php'); // Folder 2 files 
include(__DIR__.'/../includes/nav.php'); // Folder 1 files 

희망 하시겠습니까?

+0

doc root gotcha 그 덕분에 ..하지만 그 의미에서 문자열을 자르는 방법에 대한 답을 얻을 수 있을까요? 왜냐하면 내가 알고있는 것은 도로를 따라 benificial되어 있기 때문입니다. 왜냐하면 내가 아는 것은 모두 substr이고 세지 만, 슬래시 또는 특정 단어 – Duice352

+0

@ Duice352 무슨 뜻인지 모르지만 regexp 및 문자열 함수를 배웁니다. 너는해야한다! PHP에서하는 일 외에는 문자열에 부딪 칠 것입니다. 그들 주위에 다른 방법이 없습니다 :) – CodeAngry

+0

@ Duice352 그리고 내 대답을 투표 할 수 있습니다 :) – CodeAngry

0

시도하십시오 ::

if (basename(dirname(__FILE__)) = 'Folder2'){ 
    include('../../includes/nav.php'); 
}else{ 
    include('../includes/nav.php'); 
} 
0

당신은 URL의 DNS 이름 뒤에 모든 것을 나열 특수 변수

$_SERVER['PHP_SELF'] 

를 사용할 수 있습니다. 그 시점에서 가장 쉬운 방법은 "/"를 구분 기호로 사용하여 explode 함수로 분할하고 배열의 마지막 요소 (PHP 파일 이름)를 제거한 다음 implode를 사용하여 전체 문자열을 다시 단일 변수.

그러면 웹 루트에서 현재 디렉토리가 제공됩니다.

관련 문제