왜 이렇게 인클루드 했을까요?
본문
/lib/common.lib.php 상단 보면 아래 코드가 보이는데,
include_once(dirname(__FILE__) .'/pbkdf2.compat.php');
왜 아래처럼 상대경로로 안 넣고 위처럼 절대경로를 넣은 걸까요?
include_once('./pbkdf2.compat.php');
간단한 코드 놔두고, 좀 더 복잡한 코드를 넣은 심오한 이유가 궁금합니다.
답변 4
https://88240.tistory.com/109
참고해보시면
현재 파일이 존재하는 경로..
즉,
현재 common.lib.php파일을 include한 모체가 되는 파일이 위치한 경로에 저 파일이 존재할때
인큰루드를 해라의 의미로 보여지네요
/bbs/test.php
라는 파일안에서
/lib/common.lib.php 이걸 인클루드 했다고 생각해보세요.
그안에서 include_once('./pbkdf2.compat.php');
하면 bbs 폴더 안에 pbkdf2.compat.php 이 파일이 있을까요?
없으면 오류가 나겠죠.
절대로 한 이유는 이 파일이 어디 위치에서 인클루드가 되더라고 오류없이 불러오기 위한 것 입니다.
항상 같은 위치에서 파일이 인클루드되는게 아니라 상황에 따라 위치가 바뀔 수 있다는 것을 예상해서 오류가 발생하지 않도록 한거죠.
include 파일내에 다른 파일을 include 한 경우..
상대경로로 하면 include 한 위치에 따라서 못 불러오게 됩니다.
그래서 절대경로로 해줘야 합니다.
답변을 작성하시기 전에 로그인 해주세요.