Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP ftruncate() 함수 – 열린 파일을 지정한 길이로 자르는 방법

PHP의 ftruncate() 함수는 이미 열려 있는 파일을 지정된 길이만큼 잘라내는(truncate) 기능을 수행합니다. 파일 크기를 줄이거나 특정 길이로 맞춰야 할 때 유용하게 사용되며, 함수 실행에 성공하면 TRUE, 실패하면 FALSE를 반환합니다.

문법(Syntax)

ftruncate(file_pointer, size)

매개변수(Parameters)

  • file_pointer − 잘라내고자 하는 파일의 포인터입니다. 이때 해당 파일은 반드시 쓰기 모드(w)로 열려 있어야 합니다. 읽기 전용으로 열린 파일에는 적용할 수 없습니다.

  • size − 파일을 잘라낼 목표 크기입니다. 바이트 단위로 지정하며, 현재 파일 크기보다 작은 값을 넣으면 그 지점까지만 남기고 나머지 내용이 삭제됩니다.

반환 값(Return)

ftruncate() 함수는 다음 값을 반환합니다.

  • 성공 시 TRUE
  • 실패 시 FALSE

예제(Example)

아래 예제는 new.txt 파일의 원래 크기를 확인한 뒤, ftruncate()를 사용해 파일을 50바이트로 줄이고 결과를 다시 확인하는 과정을 보여줍니다.

<?php
   // 원래 파일 크기 확인
   echo filesize("new.txt");
   echo " ";
 
   // 쓰기 가능 모드(a+)로 파일 열기
   $file_pointer = fopen("new.txt", "a+");
 
   // 파일을 50바이트로 자르기
   ftruncate($file_pointer, 50);
 
   // 파일 닫기
   fclose($file_pointer);
 
   // 파일 상태 캐시 초기화
   clearstatcache();
 
   // 잘린 후 파일 크기 다시 확인
   echo filesize("new.txt");
?>

출력(Output)

400
50

참고 사항

  • ftruncate()를 호출하기 전에 파일이 쓰기 모드로 열려 있어야 정상적으로 동작합니다.
  • 파일 크기를 변경한 후 filesize() 등으로 크기를 다시 조회할 때는 clearstatcache()를 호출해 PHP의 파일 상태 캐시를 비워 주는 것이 좋습니다. 그렇지 않으면 이전 크기 정보가 그대로 반환될 수 있습니다.
  • 지정한 size가 현재 파일 크기보다 클 경우, 일부 운영체제에서는 파일이 해당 크기까지 확장되며 빈 공간은 널(NULL) 바이트로 채워질 수 있습니다.