PHP의 ftell() 함수는 fopen()으로 열려 있는 파일에서 파일 포인터의 현재 위치를 확인할 때 사용합니다. 이 함수는 파일 포인터가 현재 가리키고 있는 위치를 바이트 단위의 정수 값으로 반환하며, 실패할 경우 FALSE를 반환합니다.
문법(Syntax)
ftell(file_pointer)
매개변수(Parameters)
file_pointer − fopen() 함수를 통해 생성된 파일 포인터입니다. 필수 항목입니다.
반환값(Return)
ftell() 함수는 파일 포인터의 현재 위치를 정수로 반환합니다. 오류가 발생하면 FALSE를 반환합니다.
예제
<?php
$file_pointer = fopen("new.txt","r");
echo ftell($file_pointer);
fclose($file_pointer);
?>
출력 결과
0
파일을 읽기 모드("r")로 새로 열면 파일 포인터는 기본적으로 파일의 시작 위치인 0에 위치합니다. 따라서 위 예제에서는 0이 출력됩니다.
이번에는 fseek() 함수를 사용해 파일 포인터의 현재 위치를 변경한 뒤, 그 위치를 확인해 보겠습니다.
예제
<?php
$file_pointer = fopen("new.txt","r");
// 현재 위치 변경
fseek($file_pointer,"10");
// 현재 위치 출력
echo ftell($file_pointer);
fclose($file_pointer);
?>
fseek() 함수로 파일 포인터를 10번째 바이트 위치로 이동시킨 후 ftell()을 호출하면 다음과 같이 변경된 현재 위치가 반환됩니다.
출력 결과
10
참고 사항
ftell()은 주로 fseek(), rewind()와 함께 사용되어 파일 내 임의의 위치를 탐색하거나 현재 읽기/쓰기 지점을 추적할 때 유용합니다.
파일 모드가 "a"(추가 모드)인 경우, 쓰기 작업 전에는 파일 끝에 자동으로 이동하므로 ftell() 결과가 예상과 다를 수 있습니다.
함수 사용 후에는 fclose()로 반드시 파일을 닫아 리소스 누수를 방지하는 것이 좋습니다.