2011-09-10 6 views
6

나는 foreach를 사용하여 파일에 배열 값을 삽입하려합니다. 파일 크기가 최대 1MB (1000000byte)가되면. ,, filesize()는 0을 반환합니까?

foreach($array as $code){ 

if(filesize($file_name) < '1000000'){ 
    $update_file = file_get_contents($file_name); 
    file_put_contents($file_name,$update_file.$code); 
}else{ 
    $open = fopen($file_name.rand('99999'),'w'); 
    file_put_contents($file_name,$code); 

    } 
echo filesize($file_name); 
} 

지금 문제가 항상 0을 반환하는 기능 "() 파일 크기"입니다 : 스크립트는

내가 무엇을 사용하는 코드입니다 ... 새로운 파일을 생성하고 내부의 값을 넣어 하지만 위의 코드를 제거하고 echo filesize($file_name); 만 페이지에 넣으면 파일 크기가 0 (filesize())이기 때문에 올바른 값 (파일 크기)을 반환하고 스크립트도 1MB 이상이됩니다. 함수 반환!

내가이 질문 PHP Problem : filesize() return 0 with file containing few data? 을 확인하지만 여전히 난 .. 난 당신이 내 문제를 이해하고자하는 응답 # 1

를 따라 내 영어 죄송 메신저도 작동하지 않습니다.

+0

파일을 닫고 다시 열어 본 다음 그 파일에 쓰도록하십시오. 버퍼 때문인 것 같습니다. –

+0

어디에'$ file_name'이 설정되어 있습니까? –

+0

@ Moein7tl 시도했지만 작동하지 않았습니다. – Programmer4me

답변

8

기능 파일 크기가 내부적으로
각이 옆에

를 작성 후 명시 적으로 clearstatcache를 사용할 필요가 를 캐시, file_put_contents를의 사용은

자세한 내용

의 설명서를 참조하십시오 정확하지 않는 것
+0

감사합니다. 작동합니다. – Programmer4me

관련 문제