2012-11-11 2 views
0

간단한 출력 버퍼링 캐시 엔진을 쓰고 있습니다. 여기 상대 경로 및 'fopen'

문제에 저를 얻는 코드의 발췌 한 것입니다

//... 

function cache_page($content) { 
    $handle = fopen('./folder/cache_file','w'); 
    //... 
} 

//... 

ob_start('cache_page'); 

이상한 것은 내가 './folder/cache_file'와 같은 상대 경로를 사용하는 경우는 fopen가 false를 반환, 실패입니다. 'C :/foilder/cache_file'또는 파일 이름 'cache_file'과 같은 전체 경로를 사용하면 모든 것이 잘 작동합니다.

이 문제는 ob_start 처리기 함수 호출 (이 경우 cache_page)과 관련이있는 것 같습니다. 물론, ob_start 바로 뒤에 $handle = fopen('./folder/cache_file','w')을 넣을 때, fopen은 위의 상대 경로로 성공합니다.

답변

0

"응용 프로그램 경로"에 따라 다릅니다. 어떤 폴더에서 스크립트가 실행됩니까 ROOT_PATH의 값은 무엇입니까?

fopen('folder/cache_file','w');을 사용해 보셨습니까?

0

따라서 C:/folder/cache_file 또는 cache_file을 사용할 때 작동합니까? 즉, C:/folder/에서 스크립트를 실행 중입니다. 상대적 경로 ./folder/cache_file을 사용하는 동안 C:/folder/에 있으면 전체 경로가 C:/folder/folder/cache_file임을 의미합니다.

상대과 관련된 의미로 현재 작업 디렉토리을 의미합니다.