PHP

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

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

<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 를 보여주게 되는 것이다.

어디다 쓸까???

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

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