天天看點

PHP實作的記數器

//counter_simple.php: 簡單記數器

<html>                                                                  

<head>                                                                  

<title>                                                                 

文本計數器                                                              

</title>                                                                

</head>                                                                 

<body>                                                                  

<?                                                                      

$count_num=0;                                                           

// 如果存放計數器檔案已經存在,讀取其中的内容                           

if(file_exists("counter.txt"))                                          

{                                                                       

   /******************************                                      

   以隻讀方式打開counter.txt檔案                                        

   counter.txt用來存放計數器的值                                        

   *******************************/                                     

   $fp = fopen("counter.txt", "r");                                     

   //讀取計數器的前8位數字                                              

   $count_num = fgets($fp,9);                                           

   //浏覽次數加一                                                       

   $count_num++;                                                        

   //關閉檔案                                                           

   fclose($fp);                                                         

}                                                                       

/***************************                                            

以隻寫的方式打開counter.txt檔案                                         

把最新的計數值放入該檔案中                                              

****************************/                                           

$fp = fopen("counter.txt", "w");                                        

//寫入最新的值                                                          

fputs($fp, $count_num);                                                 

//關閉檔案                                                              

fclose($fp);                                                            

for($i=1;$i<6;$i++)                                                     

  echo "<p>&nbsp</p>\n";//顯示空行                                      

//浏覽器輸出浏覽次數                                                    

echo "<h2 align=center>您好!第&nbsp<I>$count_num</I>&nbsp位顧客!</h2>";

?>                                                                      

</body>                                                                 

</html>   

//counter_graph.php:圖象記數器

<?                                                    

/*********************************                    

定義本程式的輸出是一幅圖象                            

而且這副圖象是gif格式的                               

浏覽器使用本程式産生的圖象                            

*********************************/                    

Header("Content-type: image/gif");                    

//變量$count_length是需顯示的位數                     

$count_length=8;                                      

//$str是需要顯示的計數值                              

$str=0;                                               

// 如果存放計數器檔案已經存在,讀取其中的内容         

if ( file_exists("counter.txt") )                     

{                                                     

   /******************************                    

   以隻讀方式打開counter.txt檔案                      

   counter.txt用來存放計數器的值                      

   *******************************/                   

  $fp = fopen("counter.txt", "r");                    

  $str = fgets($fp,$count_length+1);                  

  fclose($fp);                                        

}                                                     

$str++;                                               

/***************************                          

以隻寫的方式打開counter.txt檔案                       

把最新的計數值放入該檔案中                            

****************************/                         

$fp = fopen("counter.txt", "w");                      

fputs($fp, $str);                                     

fclose($fp);                                          

$str_0 = $str;//$str_0存放計數值前面補0後的字元串     

$len_old = strlen($str);//$len_old存放原有計數值的位數

/****************************                         

如果原有計數值的位數不足,                             

則在它的前面加0補齊                                   

for ($i=$len_old+1;$i<=$count_length;$i++)            

  $str_0 = "0".$str_0;                                

};                                                    

$font = 3;//定義字号                                  

$im = imagecreate($count_length*11-1,16);             

//建立圖象                                            

$black = ImageColorAllocate($im, 0,0,0);//黑色        

$white = ImageColorAllocate($im, 255,255,255);//白色  

//定義顔色                                            

//把計數器的底色設定成黑色                            

imagefill($im, 0,0,$black);                           

/**********************                               

用白色顯示計數器的值,                                 

在每個數字之間都用線分隔                              

***********************/                              

ImageString($im,$font,1,0,$str_0[0],$white);          

for ($i=1;$i<=$count_length-1;$i++) {                 

imageline($im, $i*11-1,0,$i*11-1,16, $white);         

ImageString($im,$font,$i*11+1,0,$str_0[$i],$white);   

ImageGif($im);//輸出gif圖像檔案                       

ImageDestroy($im);//釋放該圖像檔案                    

?>  

本文轉自 牛海彬 51CTO部落格,原文連結:http://blog.51cto.com/newhappy/76902,如需轉載請自行聯系原作者