成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP生成訪問計數器的主要實現方法

開發 后端
PHP生成訪問計數器的步驟對于初學者來說還是比較難掌握的。希望大家能夠通過本文介紹的相關方法,基本掌握這一功能的實現方式。

現在用PHP語言來進行網站建設的程序員越來越多。隨著網站的發展,肯定需要諸如訪問計數器方面的功能。下面我們就為大家介紹PHP生成訪問計數器的相關方法。

#t#有的朋友可能認為它很難,不敢去嘗試,其實有了PHP這個工具,它并不難,甚至可以說它很容易。 首先,讓我來談一談訪客計數器的思路:一位訪問者瀏覽此頁,服務器(如Apache)從一個文檔(下文以num.txt為例)中讀取該頁已被瀏覽的次數,加一,然后存回num.txt,并在瀏覽器中顯示加一后的次數。

如果又一位訪問者瀏覽此頁,服務器又重復上述過程,從而實現了PHP生成訪問計數器。 PHP沒有直接的計數器函數,但利用它強大的功能,我們可以很容易地自己編寫一個計數器。

現對程序需要用到的函數進行說明:

1. 打開文件操作:int fopen(string filename, string mode); 其中string filename 是要打開的文件名,必須為字符串形式。例如\"num.txt\"。 string mode 是打開文件的方式,必須為字符形式。

’r’,只讀形式,文件指針指向文件的開頭。 ’r+’,可讀可寫,文件指針指向文件的開頭。 ’w’,只寫形式,文件指針指向文件的開頭,把文件長度截成0,如果文件不存在,將嘗試建立文件。 ’w+’,可讀可寫,文件指針指向文件的開頭,把文件長度截成0,如果文件不存在,將嘗試建立文件。

’a’,追加形式(只可寫入),文件指針指向文件的最后,如果文件不存在,將嘗試建立文件。 ’a+’,可讀可寫,文件指針指向文件的最后,如果文件不存在,將嘗試建立文件。

2. 讀文件操作:string fgets(int fp, int length); 其中 int fp 是要讀入數據的文件流指針,由fopen函數返回數值。 int length 是要讀入的字符個數,實際讀入的字符個數是length-1。

3. 寫文件操作:int fputs(int fp, string str, int [length]); 其中int fp 是要寫入信息的文件流指針,由fopen函數返回數值。 string str 是要寫入文件的字符串。 int length 是寫入的長度,可選,如果不選length,則整個串將被寫入。否則,寫入length長度個字符。

4. 關閉文件操作:int fclose(int fp); 其中int fp是fopen函數返回的文件流指針。 下面,我們來看一下PHP生成訪問計數器的原型:(假設num.txt文件存在)

 

  1. < ?php $fp = fopen(\"num.txt\", \"r\");   
  2. //只讀方式打開num.txt文件   
  3. $num = fgets($fp,5);   
  4. //讀取4位數字   
  5. $num++;   
  6. //瀏覽次數加一   
  7. fclose($fp);   
  8. //關閉文件   
  9. $fp = fopen(\"num.txt\", \"w\");   
  10. //只寫方式打開num.txt文件   
  11. fputs($fp, $str1);   
  12. //寫入加一后結果   
  13. fclose($fp);   
  14. //關閉文件   
  15. echo \"$num\";   
  16. //瀏覽器輸出瀏覽次數  
  17. ?> 

需要說明的是,這只是計數器的原型,它只能以文本方式顯示次數,并不美觀,而PHP具有極其強大的圖像處理能力,用它可以很輕易的動態生成WEB圖像。

下面對上述原型加以修改,使之成為一個真正實用的計數器。 PHP生成訪問計數器的思路是這樣的:用原型中的方法得到訪問次數,把此數字轉為標準格式,進行圖象處理,并輸出成圖片,顯示。 如果要生成記數圖象,需要以下函數:

1. 字符串長度函數:int strlen(string str); 其中string str 是要計算長度的字符串。

2. 字符串相加: 如,把 $string1和$string2相加: $string = $string1.$string2

3. 新建圖像函數:int imagecreate(int x_size, int y_size); 其中x_size,y_size分別是新建圖像的寬度和高度(以像素為單位)。

4. 顏色函數:int imagecolorallocate(int im, int red, int green, int blue); 其中int im 是圖像識別號。 int red、green、blue分別是紅綠藍三種顏色的分量,取值范圍 0 - 255,即相應顏色的RGB。

5. 給圖像填充顏色的函數:int imagefill(int im, int x, int y, int col); 其中int x, int y為開始填充顏色的圖像坐標,以圖像的左上角為(0,0)。 int col是顏色的識別號。

6. 在圖像中寫入水平文字的函數:int imagestring(int im, int font, int x, int y, string s, int col); 其中int im 是圖像的識別號。 int font 是字體識別號。 int x,int y 是開始寫入字體的坐標,(0,0)為左上角。 string s 是要寫入的字符串。 int col 是字體的顏色識別號。

7. 在圖像中劃直線的函數:int imageline(int im, int x1, int y1, int x2, int y2, int col); 其中int im 是圖像的識別號。 int x1,int y1,int x2,int y2是劃線的起止坐標。 int col 是線的顏色識別號。

8. 把圖像輸出成GIF格式的函數:int imagegif(int im, string filename); 其中int im 是圖像的識別號。 string filename是生成圖片的名字,可選,如果filename為空,則直接的輸出。

9. 釋放圖像:int imagedestroy(int im); 其中int im 是要釋放的圖像識別號。 該函數釋放識別號im的圖像及圖像所占用的系統資源。 在自己的主頁上可以這樣調用這個計數器來實現PHP生成訪問計數器:<img src=\"counter.php3\"> 下面是counter.php3的程序清單:

 

  1. < ?   
  2. Header(\"Content-type: image/gif\");   
  3. //定義輸出為圖像類型   
  4. $n=10;   
  5. //變量$n是顯示位數   
  6. $fp = fopen(\"num.txt\", \"r\");   
  7. $str1 = fgets($fp,$n+1);   
  8. $str1++; fclose($fp);   
  9. $fp = fopen(\"num.txt\", \"w\");   
  10. fputs($fp, $str1);   
  11. fclose($fp);   
  12. //同原型   
  13. $str2 = \"\";   
  14. $len1 = strlen($str1);   
  15. for ($i=1;$i<=$n;$i++)   
  16. { $str2 = \"0\".$str2; };   
  17. //得到$n位0   
  18. $len2 = strlen($str2);   
  19. //計算訪問人數的位數   
  20. $dif = $len2 - $len1;   
  21. $rest = substr($str2, 0, $dif);   
  22. $string = $rest.$str1;   
  23. //位數如果不夠$n位,在前面補0   
  24. for ($i=0;$i<=$n-1;$i++)   
  25. { $str[$i]=substr($string,$i,1); };   
  26. //以數組存儲每位  
  27.  $font = 4;  
  28.  //定義字號  
  29.  $im = imagecreate($n*11-1,16);   
  30. //新建圖象  
  31.  $black = ImageColorAllocate($im, 0,0,0);   
  32. $white = ImageColorAllocate($im, 255,255,255);   
  33. //定義顏色   
  34. imagefill($im, 0,0,$black);   
  35. //把計數器的底色設置成黑色   
  36. ImageString($im,$font,1,0,$str[0],$white);  
  37.  for ($i=1;$i<=$n-1;$i++)   
  38. { imageline($im, $i*11-1,0,$i*11-1,16, $white); ImageString($im,$font,$i*11+1,0,$str[$i],$white); };   
  39. //將每位寫入圖象,并以豎線分隔   
  40. ImageGif($im);  
  41.  //圖象輸出   
  42. ImageDestroy($im);   
  43. //釋放圖象   
  44. ?>  

另外,為了方便,還可以用將計數器作為一個函數MyCounter(),這樣只許需在主頁開頭加入require(“filename”);使MyCounter()成為此主頁的一部分,需要的時候,將<? MyCounter();?>加在需要計數器的地方就可以完成PHP生成訪問計數器。

責任編輯:曹凱 來源: ccidnet.com
相關推薦

2009-11-30 18:08:30

PHP制作動態計數器

2023-08-08 08:01:22

微服務架構服務

2009-11-25 15:07:39

PHP添加計數器

2010-01-18 11:03:17

VB.NET網頁計數器

2009-11-06 16:59:26

WCF性能計數器

2023-07-28 08:15:27

PC程序計數器

2015-03-24 13:46:29

C++多線程計數器特性實現

2009-06-11 16:27:18

科學型Java計數器

2010-02-22 16:34:17

WCF性能計數器

2009-10-29 11:47:15

ADO.NET計數器b

2022-04-08 07:22:15

分布式計數器系統設計

2009-12-22 13:16:53

WCF性能計數器

2011-03-31 16:03:20

cacti性能計數器

2011-04-06 10:03:08

Cacti遠程監控

2024-03-04 08:53:50

海量數據計數器存儲

2022-08-29 19:51:58

CSS計數器

2009-12-22 13:25:58

WCF性能計數器內存

2010-07-16 14:37:53

SQL Server

2010-01-04 16:02:32

ADO.NET計數器

2024-02-07 12:32:00

重構技巧PythonCounter
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草网址 | 日韩精品a在线观看图片 | 日韩一区二区三区视频 | 中文字幕在线观看 | 久久综合av | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 亚洲色图综合 | 久久99精品久久久久婷婷 | 欧美日韩亚洲一区二区 | 九九色综合 | 激情欧美一区二区三区 | 欧美日在线 | 日本不卡高字幕在线2019 | 国产精品久久精品 | 女人av| 日韩一区二区三区在线观看 | 亚洲 成人 在线 | 亚洲国产成人在线视频 | 成人在线视频一区 | 欧美精品一区二区三区在线播放 | 男人的天堂中文字幕 | 91精品国产乱码久久久久久久久 | 99久热在线精品视频观看 | 99re在线视频 | 日韩午夜在线播放 | 久久国产电影 | wwwxxx日本在线观看 | 最新日韩欧美 | 久久精品视频亚洲 | 精品久久国产 | www.中文字幕.com | 999www视频免费观看 | 亚洲三区视频 | 91中文字幕| 蜜臀久久 | 99精品视频一区二区三区 | 免费天天干| av日韩一区| 成人免费在线视频 | 91久久久久久久久久久久久 | 国产激情视频在线 |