六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

用PHP來(lái)寫(xiě)記數(shù)器(詳細(xì)說(shuō)明)

[摘要]PHP實(shí)例剖析:計(jì)數(shù)器 作者:Sucre_tiger 本款計(jì)數(shù)器用文本計(jì)數(shù),沒(méi)有用到數(shù)據(jù)庫(kù),可以實(shí)現(xiàn)如下功能: 利用一個(gè)文本文件實(shí)現(xiàn)多個(gè)頁(yè)的計(jì)數(shù)減少服務(wù)器的I/O占用率在需要紀(jì)錄的文件里,只需加入很少的幾行代碼 基本思路如下: ...
PHP實(shí)例剖析:計(jì)數(shù)器
作者:Sucre_tiger
本款計(jì)數(shù)器用文本計(jì)數(shù),沒(méi)有用到數(shù)據(jù)庫(kù),可以實(shí)現(xiàn)如下功能:
利用一個(gè)文本文件實(shí)現(xiàn)多個(gè)頁(yè)的計(jì)數(shù)減少服務(wù)器的I/O占用率在需要紀(jì)錄的文件里,只需加入很少的幾行代碼                                    
基本思路如下:
服務(wù)器程序從文本文件中讀取該頁(yè)被瀏覽的次數(shù),(因?yàn)樗形募蚍⻊?wù)器提出請(qǐng)求時(shí),他們的環(huán)境變量REQUEST_URI都代表他來(lái)自于何處... ...,所以,以請(qǐng)求文件的環(huán)境變量REQUEST_URI來(lái)辨別到底是那一頁(yè)正被瀏覽。),將這個(gè)次數(shù)加一儲(chǔ)存,并在調(diào)用這頁(yè)的用戶(hù)的計(jì)算機(jī)上顯示出來(lái)。
請(qǐng)先看我的數(shù)據(jù)文本中紀(jì)錄的數(shù)據(jù)樣本,(紅色為瀏覽次數(shù),其前面為相應(yīng)的被瀏覽的文件)
Counter.dat/script/s2.php 3 /script/s1.php 11 /script/counter.php 5 /testhtml/s2.php 7 /testhtml/s3.php 6
Now,Let’s go!
counter.php
<html><head>
<title>計(jì)數(shù)器</title>
<head>  
<body>
<?php
/* 定義儲(chǔ)存數(shù)據(jù)的文本文件 */
$counterFile="counter.dat\";
/* 定義一個(gè)標(biāo)記,用來(lái)辨別現(xiàn)在需紀(jì)錄的數(shù)據(jù)是否已經(jīng)文本數(shù)據(jù)中 */
$sign=False;
/* 將數(shù)據(jù)以數(shù)組的方式讀入變量 $sounterData 備用, */
$counterData=file($counterFile);  
/* 用count()函數(shù)計(jì)算共有多少個(gè)紀(jì)錄 */
/* 用explode()函數(shù)把$counterData[$i]按符號(hào)\" \"分開(kāi),并以數(shù)組的方式送回到變量$varArray里 */
/* 函數(shù)implode()與explode()剛剛相反,把數(shù)組$varArray以符號(hào)\" \"連接起來(lái)送回到$counterData */
/* 還利用了環(huán)境變量$PATH_INFO
for($i=0;$i<=count($counterData)-1;$i++)  
 {
  $varArray=explode(\" \",$counterData[$i]);  
  if ($varArray[0]==$GLOBALS[\"REQUEST_URI\"])  
   {
    $varArray[1]++;
    print($varArray[1]);
    $counterData[$i]=implode(\" \", $varArray);
    $sign=True;
    /* 找到本紀(jì)錄所在的位置后, 用break 退出循環(huán) */   
    break;
   }  
 }
/* 在這里,利用implode()這個(gè)函數(shù)的功能,將數(shù)據(jù)整理好了,一起寫(xiě)入文本文件中 */
/* 這樣,對(duì)服務(wù)器的I/O占用就降到了最低點(diǎn)
$data=implode(\"\",$counterData);
/* 打開(kāi)文本文件,將數(shù)據(jù)寫(xiě)入 */
$fp=fopen($counterFile,\"w\");
fputs($fp,$data);  
/* 如果需要紀(jì)錄的數(shù)據(jù)不在文本里,標(biāo)志$sign= Flase, 那么就往文本里添加數(shù)據(jù) */  
if (!$sign) {fputs($fp,\"\\n\".$GLOBALS[\"REQUEST_URI\"].\" \".\"1\".\" \");
print(\"1\");
/* 關(guān)閉數(shù)據(jù)文件 */
fclose($fp);
?>
</body>
</html>  
我們已經(jīng)看到了這段程序的工作過(guò)程,也都知道了思路,但如果,每個(gè)文件里都這樣寫(xiě),豈不是太麻煩.
別慌! 我們還有PHP提供的強(qiáng)大的require()功能呢! 我們把counter.php寫(xiě)成函數(shù),使用就方便許多了。那還等什么,下面就是你所要的函數(shù):
counter.inc
<?php  
function Counter()
{
  $counterFile=\"/freespace/sucre/public_html/counter.dat\";
  $counterData=file($counterFile);
  $sign=False;
  for($i=0;$i<=count($counterData)-1;$i++)  
   {
    $varArray=explode(\" \",$counterData[$i]);  
    if ($varArray[0]==$GLOBALS[\"REQUEST_URI\"])  
     {  
       $varArray[1]++;  
       print($varArray[1]);
       $counterData[$i]=implode(\" \", $varArray);
       $sign=True; break;
     }
   }
  $data=implode(\"\",$counterData);
  $fp=fopen($counterFile,\"w\");  
  fputs($fp,$data);  
  if (!$sign)  
   {
    fputs($fp,\"\\n\".$GLOBALS[\"REQUEST_URI\"].\" \".\"1\".\" \");
    print(\"1\");
   }  
  fclose($fp);
}  
?>  
最好的檢驗(yàn)方法就是“實(shí)踐”,好了來(lái)看我們?cè)鯓诱{(diào)用它,先看一個(gè)例子:
counterTest.php
<?php
require(\"counter.inc\");
?>
<html>  
<head>  
<title> 網(wǎng)頁(yè)計(jì)數(shù)器 終結(jié)版 </title>
</head>
<body>
您是第<? counter();?>位閱讀者
</body>
</html>
您只需在要計(jì)數(shù)的HTML文件的文件頭加入require()函數(shù),引入counter()函數(shù)為homepage的一部分。在需要的地方加入<? counter();?>就可以了。
還有幾點(diǎn)要注意的問(wèn)題:
1、    記錄數(shù)據(jù)的文件一定要有“寫(xiě)”的權(quán)限,一般設(shè)成“666”即可,如果該文件存放在一個(gè)子目錄下,則對(duì)這個(gè)“目錄”也要有“寫(xiě)”的權(quán)限;
2、    我在調(diào)試過(guò)程中遇到這樣一個(gè)問(wèn)題,我將counter.inc和counter.dat放在一個(gè)子目錄include下面,然后在不同的子目錄下面用require()函數(shù)進(jìn)行調(diào)用,格式如下:<?php  
      require(“../include/counter.inc”)
    ?>
可是總是出現(xiàn)“權(quán)限不夠”的錯(cuò)誤,如有高手請(qǐng)指教。





主站蜘蛛池模板: 亚洲成人福利在线观看 | 欧美一级看片免费观看视频在线 | 青娱乐91视频 | 欧美视频在线观看网站 | 欧美一区二区不卡视频 | 日韩第六页 | 天天操2018 | 日本一区午夜爱爱 | 天天操天天曰 | 青草社区在线 | 日本男女网站 | 日韩高清在线不卡 | 日韩手机专区 | 视频二区在线 | 日日爱影院 | 在线看日本吃奶孕交 | 亚洲高清资源在线观看 | 天天操天天舔天天射 | 亚洲精品国产精品乱码不卞 | 亚洲精品在线第一页 | 最新在线精品国自产拍网站 | 一级a爰片久久毛片 | 日韩爱爱小视频 | 四虎影免看黄 | 在线播放侵犯高傲女教师希崎 | 亚洲精品国产福利 | 婷婷深爱五月 | 人妖女天堂视频在线96 | 性刺激性色爽爱小说 | 青草免费在线 | 亚洲欧洲综合网 | 日本一区二区三区精品国产 | 亚洲光棍天堂 | 四虎在线视频免费观看 | 五月亭亭六月丁香 | 日本视频免费在线播放 | 欧美做真爱欧美观看免费 | 网站在线观看免费 | 亚洲九九视频 | 欧美一区二区三区在观看 | 在线a久青草视频在线观看g |