주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
꽃배달 한국, 중국 전지역배송

PHP 입문 - 파일 처리 (읽기)

광수 | 2001.10.17 00:21:00 댓글: 0 조회: 450 추천: 6
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1758806
▶ PHP 입문 - 파일 처리 (읽기)

실제 프로그램을 작성하기에 앞서 알아둬야할 기본적인 문법들입니다.


파일 처리에 있어 가장 기본적인 부분에 대해 알아보도록 하겠습니다. 먼저 읽기에
관련해 여러 예제를 중심으로 진행하도록 하겠습니다.


▷ 파일 읽기


예제 : http://dreamphp.com/study/exam14-1.txt

소스는 다음과 같습니다.

나는 자랑스런 태극기 앞에
조국과 민족의 무궁한 영광을 위하여
몸과 마음을 바쳐 충성을 다할 것을
굳게 다짐합니다.


먼저 위와 같은 텍스트 파일이 있을 경우 이를 읽어들이는 PHP 프로그램을 작성해
볼까요?

예제 : http://dreamphp.com/study/exam14-2.php

소스는 다음과 같습니다.

<?
$temp = file("exam14-1.txt");
$line = sizeof($temp);
echo "파일 라인 수 : ".$line;
echo "<br>";
$data = implode("<br>",$temp);
echo $data;
?>

위의 프로그램을 실행하면 다음과 같이 출력됩니다.

파일 라인 수 : 4
나는 자랑스런 태극기 앞에
조국과 민족의 무궁한 영광을 위하여
몸과 마음을 바쳐 충성을 다할 것을
굳게 다짐합니다.


처음 등장한 함수가 있죠? file() 함수가 그것입니다. 이는 지정된 파일의 내용을
배열 형태로 반환해줍니다. 때문에 sizeof() 함수를 이용해 몇개의 값이 있는지
알아내고 이 값을 출력한 것이죠.

다음으로 일전에 다룬 implode() 함수를 이용해 배열값을 <br> 태그를 이용해 하나의
변수에 저장한 다음 이를 한번에 출력하도록 했습니다.


이를 다르게 표현해보겠습니다.

예제 : http://dreamphp.com/study/exam14-3.php

소스는 다음과 같습니다.

<?
$fp = fopen("exam14-1.txt","r");
$data = fread($fp,5000);
fclose($fp);
echo $data;
?>

여기에 소개된 함수를 먼저 살펴볼까요?

fopen() 함수는 파일을 열 때 사용합니다. 읽기 모드, 추가 모드, 쓰기 모드 등을
두번째 인자값으로 지정할 수 있습니다.

다음 fread() 함수는 지정된 길이만큼 내용을 읽어오는 함수입니다. 위에서는 5000
바이트를 읽도록 했죠~

fclose() 함수는 위에서 fopen()으로 연 파일을 닫아주는 역할을 합니다.

그 다음 변수는 $fp를 지정해 이용했는데 어떠한 변수를 사용하건 상관없습니다.
fopen() 함수를 사용시에 지정한 저 변수는 이후 파일 관련 함수를 사용하는데
있어 꼭 덧붙여 사용해야 합니다. 일종의 키라고 보시면 됩니다.

위의 예제에서 exam14-1.txt 파일의 크기는 111 바이트인데 5000 바이트를 읽도록
했으니 많은 공간이 남았겠죠?

파일의 크기만큼 읽어들이려면 filesize() 함수 또는 feof() 함수 등을 사용해야
합니다. 이를 이용한 예제를 직접 보세요.


예제 : http://dreamphp.com/study/exam14-4.php

소스는 다음과 같습니다.

<?
// 방법 1
$fp = fopen("exam14-1.txt","r");
$data = fread($fp, filesize("exam14-1.txt"));
fclose($fp);
echo "방법1로 읽은 파일의 내용 : ".$data;
echo "<br>";

// 방법 2
$fp = fopen("exam14-1.txt","r");
while(!feof($fp)) $data2.=fgetc($fp);
fclose($fp);
echo "방법2로 읽은 파일의 내용 : ".$data2;
echo "<br>";

// 방법 3
$fp = fopen("exam14-1.txt","r");
while(!feof($fp)) $data3.=fgets($fp,20);
fclose($fp);
echo "방법3로 읽은 파일의 내용 : ".$data3;
echo "<br>";
?>

방법 1에서 보면 filesize() 함수를 이용해 파일의 크기를 알아내 그 크기만큼 파일을
읽었구요, 방법 2와 3에서 보면 while문과 feof() 함수를 이용해 파일을 읽었습니다.

방법1은 파일 크기를 구해 이용하는 함수를 사용한 것 외엔 이미 exam14-3.php에서
다룬 내용과 동일합니다. 따라서 별도의 설명을 않겠습니다.

방법 2와 3에서 파일을 읽어들일때 fgetc()와 fgets() 함수를 사용했습니다. 각각
문자 하나를 읽어오는 함수, 한줄씩 읽어오는 함수입니다.

[포인터 등의 이야기는 따로 하지 않겠습니다. 이용하는 방법을 알고, 많이 사용하는
과정에서 자연스레 알게 될 것입니다.]

while문은 괄호안의 조건이 참인 경우 반복을 합니다. 위의 코드에서 feof()는
파일의 끝인지 검사하는 함수인데 파일의 끝이 아니기 때문에 그 뒤의 명령을 수행하게
되는 것입니다. 그 뒤의 명령 문자나 라인을 읽어들이는 명령에 의해 $data2와
$data3 변수에 값이 저장되고, 파일의 끝에 도달했을때 조건이 거짓이 되어 벗어나게
되는 것입니다.

이 값의 출력은 그냥 echo $data; 등으로 출력했구요. ^^; 간단하죠?


▶ 파일을 읽는 방법에 대해 간단히 알아보았습니다. 먼저 예제를 중심으로 자신이
직접 프로그램을 작성해보세요.


* 전설님에 의해서 게시물 이동되었습니다 (2004-05-30 17:07)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >> 웹 프로그래밍
* 이동후 위치 : 웹 공부 >>

* 전설님에 의해서 게시물 이동되었습니다 (2004-05-30 17:12)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >>
* 이동후 위치 : 웹 공부 >> 웹 프로그래밍
추천 (6) 선물 (0명)
IP: ♡.149.♡.65
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
11846
관리자
2003-09-20
11395
관리자
2003-09-20
20525
지구인
2010-08-27
19327
지구인
2009-09-07
13648
SOLIDH
2010-01-29
15601
엔죠라이프
2004-10-07
16702
광수
2001-10-17
424
광수
2001-10-17
575
광수
2001-10-17
718
광수
2001-10-17
372
광수
2001-10-17
445
광수
2001-10-17
709
광수
2001-10-17
591
광수
2001-10-17
564
광수
2001-10-17
597
광수
2001-10-17
502
광수
2001-10-17
622
광수
2001-10-17
832
광수
2001-10-17
792
광수
2001-10-17
627
광수
2001-10-17
785
광수
2001-10-17
450
광수
2001-10-17
508
광수
2001-10-17
445
광수
2001-10-17
656
광수
2001-10-17
508
광수
2001-10-17
732
모이자 모바일