2011-12-02 2 views
10

파일의 마지막 문자를 제거하는 작은 PHP 스크립트가 있습니다.PHP - 파일의 마지막 문자 제거

$contents = file_get_contents($path); 
rtrim($contents); 
$contents = substr($contents, 0, -1); 
$fh = fopen($path, 'w') or die("can't open file"); 
fwrite($fh, $contents); 
fclose($fh);  

따라서 파일 내용을 읽고 마지막 문자를 제거한 다음 파일을 자르고 다시 문자열을 씁니다. 이 모든 것이 정상적으로 작동합니다.

내 파일은 많은 양의 데이터를 포함 할 수 있으며 file_get_contents() 호출은이 모든 데이터를 메모리에 보유하여 잠재적으로 내 서버 메모리를 최대한 활용할 수 있다는 것입니다.

파일에서 마지막 문자를 제거하는 더 효율적인 방법이 있습니까?

감사

답변

21

자세한 도움말은이

$fh = fopen($path, 'r+') or die("can't open file"); 

$stat = fstat($fh); 
ftruncate($fh, $stat['size']-1); 
fclose($fh); 

시도가 this 0에 파일을 잘라야 나타납니다

+0

를 참조하십시오 ..? 아마 fopen이 w를 사용하고 있기 때문일 수 있습니다. 그것을 r로 설정하는 것은 효과가없는 것 같습니까? – sulman

+0

@sulman - 업데이트 – azat

+0

대단히 감사합니다. 지금 큰 작품 :) – sulman