주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
연길시 신화서점 조선말 도서

PHP 기초활용 - (2) 카운터 기초 2

네로 | 2003.02.24 00:07:09 댓글: 0 조회: 526 추천: 3
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1758887
PHP 기초활용 - (2) 카운터 기초 2

글쓴이 : 悲魂(비혼), 2000/07/31(월)


본 강좌는 [PHP 기초중의 기초] 후속편입니다. 이번 강좌부터는 앞으로의 PHP 프로그래밍에 있어 도움될만한 내용으로 진행할 것입니다. 본
강좌의 내용은 여전히 PHP를 전혀 모르는 분, 이제 막 PHP를 공부하기 시작한 분들을 대상으로 합니다. 내용의 수정이 없는 한 자유로운 이용 및
배포가 가능합니다. 강좌의 내용 중 틀린 부분이 있거나 이해가지 않는 부분 등이 있으면 비혼의 조그만 세상(http://soulstar.new21.org/)이나
흑협의 PHP Tip(http://phptip.com/) 게시판에 글을 남겨주시면 고맙겠습니다. [참고 : 이번 강좌부터는 진행 속도가 다소 느릴 수 있으니 늦게
올라와도 이해해 주시기 바랍니다.]


* * * * * * * * * *

8월 12일 토요일 모임을 갖습니다. 참여하고픈 분들은 꼭 글을 남겨주세요...

* * * * * * * * * *

저번 강좌에서는 설명없이 소스만 나열했죠. 직접 실습을 통해 어떤 명령이 어떤 역할을 하는지 몸소 체험해보도록 설명은 쓰지 않았습니다. 직
접 작성해 보신 분들은 조금이나마 '감잡았어~'를 외치셨을테죠. [과제 제출한 사람은 한분밖에 없었어요. ㅠ.ㅠ] 그럼 강좌를 진행하겠습니다.
먼저 저번 강좌에 다룬 카운터 소스를 볼까요?

filename : counter.php
<?php
$count_file = "./count.dat";
$COUNT = fopen($count_file, "r+");
$count = fgets($COUNT, 6);
$count += 1;
fseek($COUNT,0);
fputs($COUNT,"$count");
fclose($COUNT);
echo $count;
?>

1) 파일 다루기

파일은 대부분,

①파일을 연다.
②파일 내용을 읽거나 쓴다.
③파일을 닫는다

순으로 사용합니다.

위의 소스에서 쓰인 파일에 관련된 함수를 잠깐 살펴볼까요? fopen()이란 함수가 바로 파일을 열어주는 역할을 합니다. 내용 읽기는 fgets() 함수
로, 내용 쓰기는 fputs() 함수로, 파일의 포인터 이동은 fseek() 함수를 썼고 fclose() 함수로 파일 사용을 마칩니다.

2) fopen() ... 파일, URL을 여는 함수

[형식] int fopen(string filename, string mode);

파일을 읽거나 쓰기 위해 여는 함수로 파일이름, 모드를 인자로 가집니다. 파일이름이 http://나 ftp://ftp 시작하면 인터넷을 통해 각각의 프로토
콜을 사용해 파일을 엽니다. [http:80, ftp:21] 보통의 경우는 자신의 컴퓨터에 있는 파일을 열게 됩니다. 우리는 파일만 다루면 되니 자세한 부분
은 생략합니다. 모드는 다음과 같습니다.

r ... 읽기 전용
r+ ... 읽기, 쓰기
w ... 쓰기 (파일이 없으면 생성)
w+ ... 읽기, 쓰기 (파일이 없으면 생성)
a ... 이어쓰기, 파일의 마지막으로 포인터 이동 (파일이 없으면 생성)
a+ ... 읽기, 이어쓰기, 파일의 마지막으로 포인터 이동 (파일이 없으면 생성)

실제 쓰임새를 알아볼까요?

filename : exam2-1.php
<?php
$FILE = fopen("study2.htm","r"); // 파일을 읽기전용으로 엽니다.
if(!$FILE) { // 만약 파일을 열지 못했다면 아래 메시지를 출력합니다.
echo "파일을 열 수 없습니다.";
exit; // 프로그램을 종료합니다.
}
while(!feof($FILE)) { // 파일의 끝이 아니면 계속 반복
$str = fgets($FILE, 255); // 파일로부터 255자를 가져와
echo "$str
"; // 출력해줍니다.
}
fclose($FILE); // 파일을 닫습니다.
?>

잘 응용하면 웹 텍스트 문서 뷰어 프로그램으로 이용할 수 있겠죠? ^^; 예제에서는 읽고쓰기 모드로 열었음을 이제 아셨겠죠...?


3) fgets() ... 파일의 포인터로부터 한줄씩 읽기

[형식] string fgets(int fp, int length)

원래의 카운터 예졔 소스에서는 $count = fgets($COUNT, 6);, exam2-1.php 예제에서는 $str = fgets($FILE, 255); 이렇게 명령을 썼는데 이는
파일 포인터로부터 지정된 길이만큼 불러오는 것입니다. fgets($COUNT,6) 했으니 6자리까지 불러올 수 있죠. 예제에서의 카운터 범위는 즉 0 ~
1000000 까지이며 여기서 1 증가가 일어나면 1000001이 됩니다. 직접 체험해 보세요. ^^;


4) fputs() ... 파일의 포인터에서 쓰기

[형식] int fputs(int fp, string str, int (length));

카운터 예제에선 이렇게 명령을 썼죠. fputs($COUNT,"$count"); fseek()을 먼저 설명드려야 할 것 같네요.


5) fseek() ... 파일의 포인터를 이동

[형식] int fseek(int fp, int offset);

카운터 예제에서 보면 fseek($COUNT,0);란 명령을 썼는데 바로 오픈한 파일에서 포인터의 위치를 맨 처음(0)으로 이동시키는 역할을 합니다.


여기까지 잠깐 정리를 해볼까요...? 먼저 fopen() 함수를 이용해 파일을 열었죠. $COUNT가 파일포인터가 됩니다.

$count_file = "./count.dat"; // 카운트를 저장할 파일을 지정
$COUNT = fopen($count_file, "r+"); // $COUNT가 파일 포인터. 읽기전용 모드로 카운트 파일을 열었습니다.
$count = fgets($COUNT, 6); // 6자리까지 읽어 $count 변수에 넣습니다.
$count += 1; // $count 값을 1 증가시키고
fseek($COUNT,0); // 파일포인터를 맨 앞으로 이동시킨 다음~
fputs($COUNT,"$count"); // 현재의 $count 값을 파일에 기록합니다.
fclose($COUNT); // 파일 사용을 마치고(닫기)
echo $count; // $count 값을 화면에 표시합니다.


* * * * * * * * * *

끝맺기 전에 잠깐,

카운터를 구현하는 방법은 상당히 다양합니다. 이번 강좌에서 다룬 예제는 그 많은 방법들 중의 하나일 뿐이고, 강좌를 써나가면서 여러 유형들
에 대해서 알아볼 것입니다. 기대되지 않아요...? ^^;

그럼 기초활용 2회 강좌를 마칩니다.

[과제] exam2-1.php 파일을 직접 작성해보고 예제에서는 "study2.htm" 파일을 열었으나 자신이 만든 텍스트 파일이나 HTML 문서등을 지정하여 열어볼 것
[과제게시판] http://soulstar.new21.org/v1.0/zeroboard/zboard.php3?id=report_1

* * * * * * * * * *

PHP 기초활용

(2) 카운터 기초 2 : http://soulstar.new21.org/study2/study2.htm
예제 : http://soulstar.new21.org/study2/exam2-1.php

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

* 전설님에 의해서 게시물 이동되었습니다 (2004-05-30 17:12)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >>
* 이동후 위치 : 웹 공부 >> 웹 프로그래밍
추천 (3) 선물 (0명)
IP: ♡.27.♡.234
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
11967
관리자
2003-09-20
11522
관리자
2003-09-20
20665
지구인
2010-08-27
19450
지구인
2009-09-07
13769
SOLIDH
2010-01-29
15728
엔죠라이프
2004-10-07
16823
네로
2003-02-24
629
네로
2003-02-24
562
네로
2003-02-24
1122
네로
2003-02-24
654
네로
2003-02-24
438
네로
2003-02-24
478
네로
2003-02-24
470
네로
2003-02-24
426
네로
2003-02-24
386
네로
2003-02-24
438
네로
2003-02-24
425
네로
2003-02-24
428
네로
2003-02-24
526
네로
2003-02-24
514
네로
2003-02-24
1442
네로
2003-02-24
718
네로
2003-02-24
568
네로
2003-02-24
538
네로
2003-02-24
676
네로
2003-02-24
628
네로
2003-02-24
489
모이자 모바일