개발! 딱 깔끔하고 센스있게!

PHP filemtime 함수. -'stat failed for'. 본문

개발 스크랩 메모/PHP

PHP filemtime 함수. -'stat failed for'.

렉사이 2020. 12. 14. 23:51

PHP filemtime 함수가 문제가 있습니다.

나의 webap에서 캐시 옵션을 가지고 있는 Smarty 템플릿 엔진을 사용합니다.

나의 webap에서 오류가 발생한 동작을 수행할 수 있지만, 단지 조작에만 관심을 갖는다.

내가 페이지의 링크를 클릭할 때, 일부 내용은 업데이트를 몇 번 클릭할 수 있으며, 모든 것을 좋아할 수 있지만, 약 열 개의 요청에 실패한 것이다.

다음 오류 발생:

filemtime() [function.filemtime]: stat failed for 

그리고 문제로 인한 그 선:

 return ($_template->getCachedFilepath() && file_exists($_template->getCachedFilepath())) ? filemtime($_template->getCachedFilepath()) : false ; 

보시다시피 파일이 선택되었기 때문입니다.

문제가 있는 코드 행은 smartyu internalu cacheresourceu file.php 속 (smarty lib v3.0.6 일부)

응용 프로그램은 UNIX 시스템에서 실행, 외부 관리자.

무슨 생각 있으세요?제가 디테일을 더 많이 발표해야 하나요?

대답

fileu exists 내부 방문 시스템 호출을 사용하여 실제 사용자로 검사하고, filemtime 사용 stat 을 사용하면 유효한 사용자로 검사할 것입니다.

따라서 이 문제는 유효한 사용자 = 실제 사용자의 가설에서 비롯될 수 있으며, 이 가정은 성립되지 않는다.

또 다른 해석은 두 번 호출 사이의 파일이 삭제되었다는 것이다.

두 번째 시스템 호출 사이로 인해 $u template - > getCachedFilepath () 결과와 파일의 존재가 변할 수 있습니다.

왜 file u exists 호출합니까?반대로, 건의

return @filemtime($_template->getCachedFilepath()); 

만약 $u template - > getCachedFilepath () 위치로 설정할 수 있다면, 예를 들어 false 같은 명령을 사용하십시오:

$path = $_template->getCachedFilepath(); if (!$path) return false; return @filemtime($path); 
Comments