묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[질문]php카운터 소스에 대한 질문
2002.06.18 09:09
안녕하세요..
카운터 소스입니다 이 소스에서 방문자수를 초기에 임의로 맞추는 방법좀
가르춰주세요...부탁입니다.
<?
function add_one($str){
/** 이 함수는 1 더하기만 최적화된 것임 */
$str = (string) $str;
$length = strlen($str);
$i = $length - 1; // 끝에서 부터 계산
$over = 1; // 더해지는 숫자임
do{
$temp_no = intval($str[$i]);
$temp_no = $temp_no + $over;
if($temp_no == 10){
$over = 1 ; // 올림을 함
$temp_no = '0';
}else{
$over = 0 ;
}
$str[$i] = (string) $temp_no; // 문자로 변환
$i--;
}while( ($over == 1) && ($i >= 0) );
if($over == 1){
$str = '1'.$str;
}
return $str;
}
/*
카운터 파일 구조
총카운터|날짜|날짜의카운터
*/
$DataFile="counter.data";
$today_date = date("Y-m-d"); // 오늘 날짜를 받음
$use_cookie = 1 ; // 쿠키사용 1 쿠키 사용 않음 0
if(file_exists($DataFile)){ // 카운터 파일이 있는가?
$fp=fopen($DataFile,'r');
$buffer=fread($fp,filesize($DataFile));
fclose($fp);
$data=explode("|",$buffer);
$Count = $data[0]; // 총카운터
$Cdate = $data[1]; // 최종 날짜
$dayCount = $data[2]; // 그날의 카운터
$yesterday = $data[3]; // 어제의 카운터
}else{ // 파일이 없으면
$Count = 10000;
$Cdate = $today_date;
$dayCount= 10000;
$yesterday = 10000;
}
if($Cdate != $today_date){ // 오늘 날짜가 아니면
$Cdate = $today_date;
$yesterday = $dayCount; // 그날 카운터를 어제로 옮김
$dayCount=0; // 좀 있다가 더할 것임
}
{ // 쿠키 visit를 읽어와 그 값이 now인지를 비교한다.
$Count = add_one($Count);
$dayCount = add_one($dayCount);
$wdata = $Count."|".$Cdate."|".$dayCount."|".$yesterday ; // 총카운트|날짜|그날카운트|어제카운트
$fp=fopen($DataFile,'w');
fwrite($fp,$wdata);
fclose($fp);
}
// Cookie 사용 할 껀지
if ( $use_cookie )
SetCookie("visit","now", time()+1800);
function print_count(){
global $Count;
echo $Count;
}
function print_today_count(){
global $dayCount;
echo $dayCount;
}
function print_yesterday_count(){
global $yesterday;
echo $yesterday;
}
?>
카운터 소스입니다 이 소스에서 방문자수를 초기에 임의로 맞추는 방법좀
가르춰주세요...부탁입니다.
<?
function add_one($str){
/** 이 함수는 1 더하기만 최적화된 것임 */
$str = (string) $str;
$length = strlen($str);
$i = $length - 1; // 끝에서 부터 계산
$over = 1; // 더해지는 숫자임
do{
$temp_no = intval($str[$i]);
$temp_no = $temp_no + $over;
if($temp_no == 10){
$over = 1 ; // 올림을 함
$temp_no = '0';
}else{
$over = 0 ;
}
$str[$i] = (string) $temp_no; // 문자로 변환
$i--;
}while( ($over == 1) && ($i >= 0) );
if($over == 1){
$str = '1'.$str;
}
return $str;
}
/*
카운터 파일 구조
총카운터|날짜|날짜의카운터
*/
$DataFile="counter.data";
$today_date = date("Y-m-d"); // 오늘 날짜를 받음
$use_cookie = 1 ; // 쿠키사용 1 쿠키 사용 않음 0
if(file_exists($DataFile)){ // 카운터 파일이 있는가?
$fp=fopen($DataFile,'r');
$buffer=fread($fp,filesize($DataFile));
fclose($fp);
$data=explode("|",$buffer);
$Count = $data[0]; // 총카운터
$Cdate = $data[1]; // 최종 날짜
$dayCount = $data[2]; // 그날의 카운터
$yesterday = $data[3]; // 어제의 카운터
}else{ // 파일이 없으면
$Count = 10000;
$Cdate = $today_date;
$dayCount= 10000;
$yesterday = 10000;
}
if($Cdate != $today_date){ // 오늘 날짜가 아니면
$Cdate = $today_date;
$yesterday = $dayCount; // 그날 카운터를 어제로 옮김
$dayCount=0; // 좀 있다가 더할 것임
}
{ // 쿠키 visit를 읽어와 그 값이 now인지를 비교한다.
$Count = add_one($Count);
$dayCount = add_one($dayCount);
$wdata = $Count."|".$Cdate."|".$dayCount."|".$yesterday ; // 총카운트|날짜|그날카운트|어제카운트
$fp=fopen($DataFile,'w');
fwrite($fp,$wdata);
fclose($fp);
}
// Cookie 사용 할 껀지
if ( $use_cookie )
SetCookie("visit","now", time()+1800);
function print_count(){
global $Count;
echo $Count;
}
function print_today_count(){
global $dayCount;
echo $dayCount;
}
function print_yesterday_count(){
global $yesterday;
echo $yesterday;
}
?>
숫자|날짜|숫자|숫자
이렇게 '|' 기호로 나눠져있을텐데 맨 처음의 숫자부분(총카운터)을 수정하시면 될 것 같네요. 카운터 소스는 고칠 필요없이요.