PHP 프로그래밍

본문 바로가기
사이트 내 전체검색


Web Programming >> PHP Programming
[목차]
제4장 파일처리 프로그램

    3. 카운터

예제 1 : 카운터 (counter1.html)



<HTML>
<HEAD>
<TITLE>Leelab - Counter </TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<?
/* 이것은 카운터 프로그램입니다. 
사용자의 접속 수를 카운터하고 화면으로 보여주는 기능을 합니다. */ 

$DataFile = "counter1.data"; 

if(file_exists($DataFile)) { 
	$fp = fopen($DataFile, 'r'); 
	$buffer=fread($fp, filesize($DataFile)); 
	fclose($fp); 
	$count = intval($buffer); 
} 
else { 
	$count = 0; 
}

$count = $count + 1; 
$fp=fopen($DataFile, 'w'); 
fwrite($fp, $count); 
fclose($fp); 
echo "당신은 $count 번째 방문한 손님입니다. "; 

?> 
<FONT SIZE="2" COLOR="red"><br>[F5]키를 누르시면 카운터가 증가합니다.
</FONT>
</BODY>
</HTML>



예제 2 : 카운터 (counter2.html)
예제 1을 수정하여, 같은 IP에서 접속시 카운터가 증가하지 않겠 하였다.




<HTML>
<HEAD>
<TITLE>Leelab - Counter </TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<?
/* 이것은 카운터 프로그램입니다. 
사용자의 접속 수를 카운터하고 화면으로 보여주는 기능을 합니다. */ 

$DataFile = "counter2.data"; 
$remote_addr = $REMOTE_ADDR;

if(file_exists($DataFile)) { 
	$fp = fopen($DataFile, 'r'); 
	$buffer=fread($fp, filesize($DataFile)); 
	$col_data = explode(" || ", $buffer);  
	fclose($fp); 
	$count = intval($col_data[0]); 
	$prev_addr = $col_data[1]; 
} 
else { 
	$count =  0; 
}


if(strcmp($prev_addr ,$remote_addr)) {
	$count = $col_data[0] = $count + 1; 
	$col_data[1] = $remote_addr;

	$count_data = implode(" || ", $col_data);
	$fp=fopen($DataFile, 'w'); 
	fwrite($fp, $count_data); 
	fclose($fp); 
}

echo "당신은 <b>$count</b> 번째 방문한 손님입니다. "; 
?> 
<FONT SIZE="2" COLOR="red"><p>[F5]키를 누르시면 카운터가 증가합니다.<br>
같은 IP에서는 그대로군요...
</FONT>
</BODY>
</HTML>


예제 3 : 카운터 (counter3.html)
예제 2을 수정하여, 오늘의 카운터를 볼 수 있게 하였습니다.




<HTML>
<HEAD>
<TITLE>Leelab - Counter </TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<?
/* 이것은 카운터 프로그램입니다. 
사용자의 접속 수를 카운터하고 화면으로 보여주는 기능을 합니다. */ 

$DataFile = "counter3.data"; 
$remote_addr = $REMOTE_ADDR;
$today = date("Y-m-d");
if(file_exists($DataFile)) { 
	$fp = fopen($DataFile, 'r'); 
	$buffer=fread($fp, filesize($DataFile)); 
	$col_data = explode(" || ", $buffer);  
	fclose($fp); 
	$count = intval($col_data[0]); 
	$prev_addr = $col_data[1]; 
	$ycount = $col_data[2]; 
	$yday = $col_data[3]; 
} 
else { 
	$count =  0; 
	$ycount =  0; 
}


if(strcmp($prev_addr ,$remote_addr)) {
	$count = $col_data[0] = $count + 1; 
	$col_data[1] = $remote_addr;

	if(!strcmp($today,$yday)) {
		$ycount = $col_data[2] = $ycount + 1;
		$col_data[3] = $yday;
	}else {
		$ycount = $col_data[2] = 1;
		$col_data[3] = $today;
	}

	$count_data = implode(" || ", $col_data);

	$fp=fopen($DataFile, 'w'); 
	fwrite($fp, $count_data); 
	fclose($fp); 
}

echo "오늘 : $ycount 번째<br> "; 
echo "총합 : $count 번째<br> "; 
?> 
<FONT SIZE="2" COLOR="red"><p>[F5]키를 누르시면 카운터가 증가합니다.<br>
같은 IP에서는 그대로군요...
</FONT>
</BODY>
</HTML>




예제 4 : 카운터 (counter4.html)
예제 3을 수정하여, 오늘과 어제의 카운터를 볼 수 있게 하였습니다.




<HTML>
<HEAD>
<TITLE>Leelab - Counter </TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<?
/* 이것은 카운터 프로그램입니다. 
사용자의 접속 수를 카운터하고 화면으로 보여주는 기능을 합니다. */ 

$DataFile = "counter4.data"; 
$remote_addr = $REMOTE_ADDR;
$today = date("Y-m-d");

if(file_exists($DataFile)) { 
	$fp = fopen($DataFile, 'r'); 
	$buffer=fread($fp, filesize($DataFile)); 
	$col_data = explode(" || ", $buffer);  
	fclose($fp); 
	$count = intval($col_data[0]); 
	$prev_addr = $col_data[1]; 
	$ycount = intval($col_data[2]); 
	$yday = $col_data[3]; 
	$bcount = intval($col_data[4]); 
} 
else { 
	$count =  0; 
	$ycount =  0; 
	$bcount =  0; 
}


if(strcmp($prev_addr ,$remote_addr)) {
	$count = $col_data[0] = $count + 1; 
	$col_data[1] = $remote_addr;

	if(!strcmp($today,$yday)) {
		$ycount = $col_data[2] = $ycount + 1;
		$col_data[3] = $yday;
		$col_data[4] = $bcount;
	}else {
		$bcount = $ycount;

		$ycount = $col_data[2] = 1;
		$col_data[3] = $today;
		$col_data[4] = $bcount;
	}

	$count_data = implode(" || ", $col_data);

	$fp=fopen($DataFile, 'w'); 
	fwrite($fp, $count_data); 
	fclose($fp); 
}

echo "오늘 : $ycount 번<br> "; 
echo "어제 : $bcount 번<br> "; 
echo "총합 : $count 번<br> "; 
?> 
<FONT SIZE="2" COLOR="red"><p>[F5]키를 누르시면 카운터가 증가합니다.<br>
같은 IP에서는 그대로군요...
</FONT>
</BODY>
</HTML>

예제 5 : 카운터를 홈페이지에 붙이기
홈페이지 웹문서(index.html)등에 아래의 소스를 원하는 부분에 끼워 넣으면 된다.

<?
/* 이것은 카운터 프로그램입니다. */ 

$DataFile = "counter.data"; 
$remote_addr = $REMOTE_ADDR;
$today = date("Y-m-d");

if(file_exists($DataFile)) { 
	$fp = fopen($DataFile, 'r'); 
	$buffer=fread($fp, filesize($DataFile)); 
	$col_data = explode(" || ", $buffer);  
	fclose($fp); 
	$count = intval($col_data[0]); 
	$prev_addr = $col_data[1]; 
	$ycount = intval($col_data[2]); 
	$yday = $col_data[3]; 
	$bcount = intval($col_data[4]); 
} 
else { 
	$count =  0; 
	$ycount =  0; 
	$bcount =  0; 
}


if(strcmp($prev_addr ,$remote_addr)) {
	$count = $col_data[0] = $count + 1; 
	$col_data[1] = $remote_addr;

	if(!strcmp($today,$yday)) {
		$ycount = $col_data[2] = $ycount + 1;
		$col_data[3] = $yday;
		$col_data[4] = $bcount;
	}else {
		$bcount = $ycount;

		$ycount = $col_data[2] = 1;
		$col_data[3] = $today;
		$col_data[4] = $bcount;
	}

	$count_data = implode(" || ", $col_data);

	$fp=fopen($DataFile, 'w'); 
	fwrite($fp, $count_data); 
	fclose($fp); 
}
?> 
<table width=150 align=center>
<tr><td colspan=2>
<hr size=1>
</td></tr>
<tr><td align=left>
<font color=blue><span style="font-size:9pt;">&nbsp;오늘 :</span></font>
</td><td align=right>
<font color=blue><span style="font-size:9pt;"><?echo "$ycount 번";?>&nbsp;</span></font>
</td></tr>
<tr><td align=left>
<font color=blue><span style="font-size:9pt;">&nbsp;어제 :</span></font>
</td><td align=right>
<font color=blue><span style="font-size:9pt;"><?echo "$bcount 번";?>&nbsp;</span></font>
</td></tr>
<tr><td align=left>
<font color=blue><span style="font-size:9pt;">&nbsp;총합 :</span></font>
</td><td align=right>
<font color=blue><span style="font-size:9pt;"><?echo "$count 번";?>&nbsp;</span></font>
</td></tr>
<tr><td colspan=2 align=center>
<hr size=1>
<span style="font-size:8pt;">Update : 2001년 6월 18일</span></font>
</td></tr></table>


[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.