日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
PHP生成訪問(wèn)計(jì)數(shù)器的主要實(shí)現(xiàn)方法

現(xiàn)在用PHP語(yǔ)言來(lái)進(jìn)行網(wǎng)站建設(shè)的程序員越來(lái)越多。隨著網(wǎng)站的發(fā)展,肯定需要諸如訪問(wèn)計(jì)數(shù)器方面的功能。下面我們就為大家介紹PHP生成訪問(wèn)計(jì)數(shù)器的相關(guān)方法。

公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出富錦免費(fèi)做網(wǎng)站回饋大家。

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

如果又一位訪問(wèn)者瀏覽此頁(yè),服務(wù)器又重復(fù)上述過(guò)程,從而實(shí)現(xiàn)了PHP生成訪問(wèn)計(jì)數(shù)器。 PHP沒(méi)有直接的計(jì)數(shù)器函數(shù),但利用它強(qiáng)大的功能,我們可以很容易地自己編寫(xiě)一個(gè)計(jì)數(shù)器。

現(xiàn)對(duì)程序需要用到的函數(shù)進(jìn)行說(shuō)明:

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

’r’,只讀形式,文件指針指向文件的開(kāi)頭。 ’r+’,可讀可寫(xiě),文件指針指向文件的開(kāi)頭。 ’w’,只寫(xiě)形式,文件指針指向文件的開(kāi)頭,把文件長(zhǎng)度截成0,如果文件不存在,將嘗試建立文件。 ’w+’,可讀可寫(xiě),文件指針指向文件的開(kāi)頭,把文件長(zhǎng)度截成0,如果文件不存在,將嘗試建立文件。

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

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

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

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

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

需要說(shuō)明的是,這只是計(jì)數(shù)器的原型,它只能以文本方式顯示次數(shù),并不美觀,而PHP具有極其強(qiáng)大的圖像處理能力,用它可以很輕易的動(dòng)態(tài)生成WEB圖像。

下面對(duì)上述原型加以修改,使之成為一個(gè)真正實(shí)用的計(jì)數(shù)器。 PHP生成訪問(wèn)計(jì)數(shù)器的思路是這樣的:用原型中的方法得到訪問(wèn)次數(shù),把此數(shù)字轉(zhuǎn)為標(biāo)準(zhǔn)格式,進(jìn)行圖象處理,并輸出成圖片,顯示。 如果要生成記數(shù)圖象,需要以下函數(shù):

1. 字符串長(zhǎng)度函數(shù):int strlen(string str); 其中string str 是要計(jì)算長(zhǎng)度的字符串。

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

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

4. 顏色函數(shù):int imagecolorallocate(int im, int red, int green, int blue); 其中int im 是圖像識(shí)別號(hào)。 int red、green、blue分別是紅綠藍(lán)三種顏色的分量,取值范圍 0 - 255,即相應(yīng)顏色的RGB。

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

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

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

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

9. 釋放圖像:int imagedestroy(int im); 其中int im 是要釋放的圖像識(shí)別號(hào)。 該函數(shù)釋放識(shí)別號(hào)im的圖像及圖像所占用的系統(tǒng)資源。 在自己的主頁(yè)上可以這樣調(diào)用這個(gè)計(jì)數(shù)器來(lái)實(shí)現(xiàn)PHP生成訪問(wèn)計(jì)數(shù)器: 下面是counter.php3的程序清單:

 
 
 
  1. < ?   
  2. Header(\"Content-type: image/gif\");   
  3. //定義輸出為圖像類(lèi)型   
  4. $n=10;   
  5. //變量$n是顯示位數(shù)   
  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. //計(jì)算訪問(wèn)人數(shù)的位數(shù)   
  20. $dif = $len2 - $len1;   
  21. $rest = substr($str2, 0, $dif);   
  22. $string = $rest.$str1;   
  23. //位數(shù)如果不夠$n位,在前面補(bǔ)0   
  24. for ($i=0;$i<=$n-1;$i++)   
  25. { $str[$i]=substr($string,$i,1); };   
  26. //以數(shù)組存儲(chǔ)每位  
  27.  $font = 4;  
  28.  //定義字號(hào)  
  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. //把計(jì)數(shù)器的底色設(shè)置成黑色   
  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. //將每位寫(xiě)入圖象,并以豎線分隔   
  40. ImageGif($im);  
  41.  //圖象輸出   
  42. ImageDestroy($im);   
  43. //釋放圖象   
  44. ?>  

另外,為了方便,還可以用將計(jì)數(shù)器作為一個(gè)函數(shù)MyCounter(),這樣只許需在主頁(yè)開(kāi)頭加入require(“filename”);使MyCounter()成為此主頁(yè)的一部分,需要的時(shí)候,將加在需要計(jì)數(shù)器的地方就可以完成PHP生成訪問(wèn)計(jì)數(shù)器。


文章題目:PHP生成訪問(wèn)計(jì)數(shù)器的主要實(shí)現(xiàn)方法
網(wǎng)頁(yè)URL:http://m.5511xx.com/article/dhpjcod.html