2022. 9. 27. 00:42ㆍProgram/PHP
093_PHP 파일의 내용으 한 라인씩 읽기 fgets()
[요약]
- 파일의 내용을 한 라인씩 읽는 함수 fgets() 에 대해 알아보자.
파일의 내용을 한 라인씩 불러오는 방법에 대해 알아보자.
파일을 한 라인씩 불러오는 것은 보통 주소 정보를 최신화할 때 사용한다.
우체국 홈페이지에서는 최신 주소 정보를 파일로 제공하며, 개발자는 그 파일을 한 줄씩 읽어 자사 서비스의 주소 데이터베이스를 최신화하는데 사용한다.
한 라인씩 불러오는 기능을 구현하기 위해 여러 라인의 내용을 helloworld.txt 파일에 입력한다.
다음의 텍스트를 helloworld.txt에 입력 후 저장한다.
line hello wolrd 1
line hello wolrd 2
line hello wolrd 3
line hello wolrd 4
line hello wolrd 5
이제 helloworld.txt 의 파일 내용을 한 줄씩 불러오자.
파일을 한 줄씩 읽어올 때는 fgets() 함수를 사용한다.
fread() 함수에서 사용하는 아규먼트와 똑같은 아규먼트를 사용한다.
[fgets() 함수 사용 방법]
$fopen = fopen('파일 경로 및 파일명', 'r+');
fread = fgets($fopen, '불러올 용량');
fread()와 fgets()의 차이는 fgets() 함수의 경우 줄 바뀜을 만나면 가져오는 것을 종료하는 것이다.
따라서 한 줄만 가져올 수 있다.
불러올 용량은 어느 정도의 욜양에서 줄 바뀜이 일어날 지 알 수 없으므로 적당한 선에서 충분한 용량을 제시하는 편이 좋다.
또한 더 불러올 내용이 없다면 fgets() 함수는 false를 반환한다.
우리는 다섯 줄을 입력했으므로 fgest() 함수를 5번 실행하면 되지만, fgets() 함수를 사용할 때는 파일이 몇 줄 있는지 알지 못하는 상황이므로 반복문을 이용하여 false를 반환하면 반복문에서 빠져나오도록 해야한다.
다음은 앞에서 작성한 helloworld.txt 파일을 한 줄씩 읽어오는 예제이다.
[예제: 96_fgets.php ]
<?php
$fileName = "helloworld.txt";
if (file_exists($fileName)) {
$fopen = fopen($fileName, 'r');
// 읽어올 용량 설정 상황에 따라 다른값 넣어야 함
$readByte = 512;
if ($fopen) {
while (($fgets = fgets($fopen, $readByte))) {
echo $fgets . "<br>";
}
}
}
?>
실행결과
초보자를 위한 PHP 200제
김태영 지음 | 정보문화사
'Program > PHP' 카테고리의 다른 글
[PHP] 쿠키의 값 확인하기 $_COOKIE (0) | 2022.09.27 |
---|---|
[PHP] 쿠키의 정의와 쿠키 생성하기 setcookie() (0) | 2022.09.27 |
[PHP] 파일의 내용 읽기 fread() (1) | 2022.09.27 |
[PHP] 파일 쓰기 fwrite() (0) | 2022.09.24 |
[PHP] 파일 닫기 fclose() (0) | 2022.09.24 |