스스로 참조하고 잊지 않기 위함이긴 하지만, 너무 기본적인 내용을 쓰는 건지도 모르겠다...
php 코드를 실행하다 보면 저장한 파일을 불러와야 할 때도 있고, 또는 파일 형태로 저장해야 하는 경우도 있다. 먼저 내 컴에서 테스트를 하고 나서 서버에 올리는데, 나는 Windows고 서버는 Unix 인지라 문법이 다른 경우도 문제 (예를 들어 \n과 \r\n의 차이 등)이지만, 특정 경로를 사용해야 하는 경우가 문제이기도 하다.
예를 들어 내가 사용하고 있는 코드들의 모임인 a.php 파일의 로컬 위치는 (php의 주소 형태로) C:/APM_Setup/htdocs/a.php 이지만 서버에서는 home/yoon/a.php 이라면, 코딩할 때 앞에서는 내 주소로 썼다가 뒤에서는 다 바꿔줘야 하는 문제점이 있다. 다행히도, 또 당연하게도 이 문제는 기본 실행 디렉토리로 해결이 되는 것 같다. 두 경우 모두 그냥 ./a.php 라고 쓰면 잘 실행이 된다.
하나의 디렉토리에 모든 것을 다 담을 수는 없으므로 자연스럽게 하부 디렉토리를 만들게 되는데, 이 경우에는 경로를 사용하는 시작점을 생각해야 한다. 예를 들어 웹 실행은 C:/APM_Setup/htdocs/a.php로 시작을 하고 이 작업 내에서 하부 디렉토리에 있는 C:/APM_Setup/htdocs/data/b.txt 를 사용(참조)한다고 하면, a.php 코드에 참조하는 부분을 쓸때 그냥 ./data/b.txt 로 명기하면 된다.
조금 더 나아가 보자. C:/APM_Setup/htdocs/a.php 를 실행하기 위한 소스코드들은 C:/APM_Setup/htdocs/source/c.php 에 함수 형태로 있고, 각종 데이터들은 C:/APM_Setup/htdocs/data/b.txt 에 있다고 하자. 이때 c.php에서 b.txt의 데이터를 사용(참조)하고자 한다면 어떻게 될까? 웃기게도 그냥 c.php 파일 내에서 ./data/b.txt 로 명기하면 된다... 언뜻 보면 좀 이해가 안되는데, 내 생각에는 보통 루트 디렉토리라 불리우는 기본 시작점을 프로그램의 실행시 시작하는 디렉토리로 보는 관점인 것 같다.
No comments:
Post a Comment