freezner

[Codeigniter] is_file, file_exists 사용시 경로를 FALSE로 리턴하는 경우

PHP로 개발 하면서 파일의 유무를 알기 위해서 is_file이나 file_exists 를 많이 사용합니다.

코드이그나이터에서도 예외는 아니죠. 하지만 기존 PHP와 코드이그나이터에서 위 함수의 경로를 읽어들이는 방법이 다릅니다.

PHP에서는 웹사이트의 도큐먼트루트를 참초해 파일을 찾지만 코드이그나이터에서는 HOME 디렉토리에서 부터 파일을 찾게 됩니다. 그러므로 기존 PHP에서 사용하던 is_file(‘/aaa/bbb/ccc.js’); 와 같은 코드를 코드이그나이터에서 그대로 쓰면 FALSE값을 리턴하게 됩니다. 코드이그나이터에서는 경로를 시스템루트에서부터 읽어 들이기에 경로부분을 조금 달리해야합니다.

코드이그나이터에서는 시스템루트에서 도큐먼트루트까지의 경로를 상수를 이용해 쉽게 구해올 수 있습니다,

제공되는 상수 중에서 FCPATH 라는 녀석입니다.

위 파일 경로에서 수정을 한다면 is_file(FCPATH . ‘/aaa/bbb/ccc.js’); 로 상수를 추가해주시면 됩니다.

Exit mobile version