본문 바로가기
PHP

서버의 현재 디렉토리명을 반환하는 함수

by ethanjoh 2009. 11. 10.
아래의 함수는 서버의 현재 디렉토리명을 반환하는 함수를 급히 만들 일이 있어 한번 만들어 보았다.
디렉토리 내에 들어있는 특정 이미지를 보여주는 것이다.여기서는 로고 이미지.

<body>
<?php
  //현재 디렉토리명 반환하기
  $name = get_dirname();
 
  //현재 디렉토리명 반환 함수
  function get_dirname() {
      $dir = getcwd(); // 현재 디렉토리명을 반환하는 PHP 함수이다.
      $temp = explode("/", $dir);
      $dirname = $temp[sizeof($temp)-1];
     
      return $dirname;
  }
 
 ?>
<img src="<?=$name?>_logo.gif" />
</body>

설명 :  getcwd()는 현재 디렉토리명을 반환하는 PHP 내장함수이다.

위에서는 아마도 public_html/seoul이나 서버에 따라 www/seoul 값 등을 반환할 것이다.
여기서 필요한 것은 seoul이라는 디렉토리명이기 때문에 explode() 함수를 써서 "/"로 구분한 뒤 배열에 넣어둔다.

temp[0]에는 public_html 이, temp[1]에는 seoul 이라는 값이 들어있기 때문에 배열의 크기(temp[2])에서 -1을 하면 seoul이라는 값을 얻을 수 있다.


예를 들어, 서버에 seoul, incheon, suwon 등의 디렉토리를 만들어두고 각각의 디렉토리에 seoul_logo.gif, incheon_logo.gif, suwon_logo.gif 파일을 각각 넣어둔다.

물론 위의 소스는 index.php로 각각의 디렉토리에 들어있을 것이다.

http://www.test.com/seoul 로 접속을 하거나 또는 http://seoul.test.com 으로 접속하면 포워딩을 통해 seoul 디렉토리의 index.php 파일을 보여줄 것이다.

http://seoul.test.com 에 접속하면 seoul_logo.gif 를 보여주고, http://incheon.test.com에 접속하면 incheon_logo.gif 를 보여주게 되는 것이다.

어디다 쓸까???

프렌차이즈점 홈페이지에서 각 대리점별로 디렉토리를 만들어 각 대리점의 로고 이미지를 디렉토리명과 동일하게 접두사를 두어 넣어두고, 대리점 홈페이지에 접속하면 각각의 대리점 로고가 나오도록 하는데 쓸 예정이다.
대리점 로고 등 몇 가지 파일을 제외하고는 페이지들이 동일하게 쓰이기 때문에...
그냥 대리점명을 디렉토리명으로 사용해서 구분하도록 했다.

아, 뭐 더 좋은 방법이 있을 수 있다.
하지만 내 머리에서 나온 것은 여기까지...-_-;