熱門標(biāo)簽
- 岐嶺網(wǎng)站制作
- 新甸網(wǎng)站開發(fā)公司
- 工廠網(wǎng)站主頁設(shè)計思路
- 桐源制作網(wǎng)站
- 鴛溪高端網(wǎng)站建設(shè)
- 羅峰網(wǎng)頁制作公司
- 靛房網(wǎng)站優(yōu)化
- 湯泉外貿(mào)網(wǎng)站建設(shè)
- 阿勒泰市網(wǎng)站優(yōu)化
- 紅旗路網(wǎng)頁制作
- 峰源網(wǎng)頁制作公司
- 續(xù)邁網(wǎng)站推廣
- 蔡園網(wǎng)站設(shè)計
- 高德網(wǎng)頁制作
- 低價網(wǎng)站設(shè)計多少錢
- 網(wǎng)店制作
- 西張外貿(mào)網(wǎng)站建設(shè)
- 后窯網(wǎng)頁制作
- 兵團三十七團外貿(mào)網(wǎng)站建設(shè)
- 楊場網(wǎng)站建設(shè)
熱文推薦
- 房地產(chǎn)網(wǎng)站怎么建設(shè)和經(jīng)營
- 深圳福田企業(yè)網(wǎng)站制作,SEO新手如…
- 運哪兒物流官方網(wǎng)站設(shè)計制作
- 區(qū)塊鏈如何變革數(shù)據(jù)庫災(zāi)備系統(tǒng)?
- 企業(yè)手機網(wǎng)站開發(fā)不能忽視的三大問…
- 深圳網(wǎng)站建設(shè)分享如何利用長尾關(guān)鍵…
- 電商網(wǎng)站建設(shè)運營:如何運用數(shù)據(jù)分…
- 企業(yè)可以通過哪些方式建立網(wǎng)站?
- 網(wǎng)站改版后流量如何提升?
- 怎么確定網(wǎng)站建設(shè)的主題,怎么快速…
如何創(chuàng)建自己的程序(Javascript,ajax,PHP)
如何打造自己的節(jié)目(JavaScript,ajax,PHP)深圳網(wǎng)站打造網(wǎng)站時,主要目標(biāo)之一就是吸引游客。流量是為了錢,為了炫耀你的工作,或者只是為了表達你的想法。有很多方法可以為您的網(wǎng)站創(chuàng)建流量。搜索引擎、社交書簽、口碑只是幾個例子。但是你怎么知道交通是不是真的 你怎么知道你的客人還會回來
這些問題提出了網(wǎng)絡(luò)統(tǒng)計的概念。通常,網(wǎng)站管理員使用一些程序,例如谷歌Analytics或軟件來完成他們的工作。這些程序可以獲得網(wǎng)站訪問者的各種信息。他們發(fā)現(xiàn)了頁面瀏覽量、訪問量、唯一訪問者、瀏覽器IP地址等,但這是如何工作的呢 有關(guān)如何使用PHP、JavaScript、ajax和sqlite創(chuàng)建自己的網(wǎng)站統(tǒng)計程序,請按照本教程進行操作。
首先,讓我們從一些簡單的HTML標(biāo)記開始,它們將充當(dāng)我們跟蹤的頁面:
lt;!DOCTYPEhtmlPUBLICquot;-//W3C//DTDXHTML 1.0transitional//分號;引用;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional。DTD引用;燃氣輪機;書信電報;html xmlns=quot;http://www.w3.org/1999/xhtmlquot; dir=報價;ltrquot;lang=quot;在美國;燃氣輪機;書信電報;頭部gt;lt;metahttp-當(dāng)量=quot;Content-類型quot;Content=報價;文本/html;charset=UTF-8quot/燃氣輪機;書信電報;一)所有權(quán);(1)Web Statistic)slt公司/標(biāo)題;lt/頭部gt;書信電報;車身gt;
lt;H2id=報價;完成;燃氣輪機;lt;/()H2)燃氣輪機;
lt/車身gt;lt/htmlgt公司;
H2#通過網(wǎng)站統(tǒng)計信息成功跟蹤頁面視圖后,將動態(tài)填充完整元素JavaScript。要開始跟蹤,我們可以使用jQuery和ajax請求:
書信電報;腳本類型=quot;文本/JavaScriptquot;src=quot;http://ajax.googleapis.com/ajax/libs/jQuery/1.3.2/jQuery.min.jsquot;燃氣輪機;lt/腳本gt;lt;script type=#39;text/javascript#39; gt;$()函數(shù)(){// Set the data text var dataText = #39;頁碼=lt;PHP echo $_SERVER; gt;amp;referrer=lt;PHP echo $_SERVER; gt;#39;;
//創(chuàng)建ajax請求$ajax({type:quot;pOSTquot;,//使用pOST方法url:quot/過程。PHPquot;,//文件到calldata:dataText,//我們要傳遞的數(shù)據(jù)success:function(){//success$(#39;#完成#39;)。html(#39;您的頁面視圖已Add添加到統(tǒng)計信息中39; ); } });}); lt/腳本gt;
逐步考慮上述代碼:
當(dāng)DOM準(zhǔn)備就緒時,我們首先放入數(shù)據(jù)和文本。本文采用查詢字符串格式,將發(fā)送的數(shù)據(jù)進行處理PHP,將跟蹤此頁面視圖。
然后我們創(chuàng)建一個ajax請求,該請求使用post方法發(fā)送表單數(shù)據(jù)。
然后我們的表數(shù)據(jù)(數(shù)據(jù)、文本)被發(fā)送到進程PHP在服務(wù)器的根目錄下。
一旦請求完成,H2#complete元素充滿成功通知
我們的下一步是編寫進程PHP. 它的主要目標(biāo)是獲取web統(tǒng)計信息并將其存儲在數(shù)據(jù)庫中。由于我們的數(shù)據(jù)庫尚未建立,我們必須創(chuàng)建一個簡單的文件install,它將為我們完成以下操作:
lt;PHP#打開數(shù)據(jù)庫$handle=sqlite#打開($SERVER。#39;統(tǒng)計數(shù)據(jù)庫#39;,0666,$sqlite錯誤)或die($sqlite錯誤);
#設(shè)置command以創(chuàng)建表$sqlCreateTable=quot;創(chuàng)建表stats(page textunique,ip text,viewsUNSIGNED int DEFAULT 0,referrertext DEFAULT#39;#39;) 引用;;
#execute itsqliteexec($handle,$sqlCreateTable);# Print that we are done echo #39;Finished!# 39;; 燃氣輪機;
大部分代碼都很簡單。它在服務(wù)器的根目錄中打開一個數(shù)據(jù)庫并為其創(chuàng)建一個數(shù)據(jù)庫。sqlcreatetable美元中的字符串是一個sqlite命令,允許我們對表進行計數(shù)。該表包含四列:第頁,IP地址、評論和建議:
頁面是一個字符串,其中包含被視為相對鏈接的頁面(即索引PHP)。
IP地址也是包含訪問此頁的IP地址列表的字符串。它位于numvisits1格式IP地址1)numvisits2(Ip地址2)numvisits3(IP address3)等中。例如,如果我們訪問74.35.286.15和586.31.23.78(假想的IP地址)中的10個人,字符串將為“and;10(74.25.286.15)5(86.31.23.78)rdquo
視圖是一個整數(shù),包含頁面的查看次數(shù)。
引用與IP地址格式相同的字符串。它包含所有關(guān)于此頁上有多少下線的引用。
現(xiàn)在開始處理PHP:
#連接到數(shù)據(jù)庫$handle=sqliteuuOpen($SERVER。#39/統(tǒng)計數(shù)據(jù)庫#39;,0666,$sqlite錯誤)或die($sqlite錯誤);
#使用同源策略防止交叉-site scripting(XSS)攻擊#請記住將http://您的DOMain.com/替換為實際的DOMainif(strpos($SERVER,#39;http://yourdomain.com/#39; ) !== 0){die(引用;不要使用call這個腳本manually或來自外部源代碼。quot;);}
#獲取必要的信息,stripHTML標(biāo)記,以及escape備份探測的string$頁=sqlite\escape\string(strip\referrer)=sqliteescape)string(stripuTags($pOST));$ip=sqliteu67)string(stripu標(biāo)簽($SERVER));
#query數(shù)據(jù)庫以便我們可以Update舊信息$sqlGet=#39;從統(tǒng)計信息中選擇*頁=#39;#39;.$ 第39頁39;# 39;;$result=sqlite+query($handle,$sqlGet);
**段代碼連接到我們的統(tǒng)計數(shù)據(jù)庫并獲取當(dāng)前訪問所需的信息。它還查詢數(shù)據(jù)庫并獲取任何以前存儲的信息。我們使用此信息創(chuàng)建更新表。
下一個任務(wù)是查找舊信息:#設(shè)置一些變量來保存舊信息$views =0$ips=#39;#39;;$referrers = #39;# 39;; # 檢查是否有舊信息exists如果($resultamp;amp; ($ info=sqlitefetch)array($result)){#獲取此信息$views =$info;$ips=$信息。#39;#39;; 如果($info)$referrers = $info.#39;#39;;
#設(shè)置一個標(biāo)志,表明找到了舊信息$flag=true;}
上面的代碼查找表中以前的所有信息。這是至關(guān)重要的,我們需要更新視圖(添加一個)、IP地址和引用的數(shù)量為allreferrers和IP addresses$ref818;num=array(;$ipnum=array();
#查找每個referrer$VALUES=拆分(#39;#39;, $referrers );
#設(shè)置正則表達式string以解析referrer$regex=#39;%(d+((*))%#39;;
#循環(huán)遍歷每個referrerforeach($VALUESas$value){#查找ref勘誤表的number和referrerpregmatch($regex,$value,$matches);如果兩者存在,If($matchesamp;amp; $matches)#在array(referrer鏈接-gt;num誤碼率ref勘誤表)$ref2003;num=intval($matches);}#如果此visitif($referrer)#Add上有一個referrer,則將其添加到array$refnum)++;#獲取ips$VALUES=拆分(#39;#39;, $ips );
#重復(fù)與上述相同的過程($VALUESas$value){#查找pregmatch($regex,$value,$matches);#如果($matchesamp;amp; $matches#Add它到array$ipnum=intval($matches);}
#Update當(dāng)前Ip為$Ip的arraynum+;
上面的兩個循環(huán)非常相似。它們從數(shù)據(jù)庫中獲取信息并用正則表達式進行解析。一旦這些信息被解析,它就被存儲在一個數(shù)組中。然后用當(dāng)前訪問的信息更新每個數(shù)組。然后,可以使用此信息創(chuàng)建**后一個字符串:#Reset the $ips string$ips = #39#39;;
#循環(huán)allinformationforeach($ip_)為$key=gt;$val){#將其附加到string(用空格分隔)$ips。=$val.#39;(#39;.$ 鑰匙。#39;)#39;;}
#修剪string$ips=修剪($ips);
#重置$referrersstring$referrers = #39;#39;;
#循環(huán)使用allinformationforeach($refunum)作為$key=gt;$val ) { # Append it $referrers .= $val.#39;(# 39;.$ 鑰匙。#39;)#39;;}
#修剪string$referrers=修剪($referrers);
現(xiàn)在創(chuàng)建**后一個字符串ips,建議的形式是:quotnumvisits1(Ip/referrer1)numvisits2(Ip/referrer2)等。例如,以下是參考字符串:
5(https://www.noupe.com )10(http://css-tricks.com)
#Updateviews$views++;#的num誤碼率如果我們did從數(shù)據(jù)庫獲取信息#(數(shù)據(jù)庫已經(jīng)包含一些關(guān)于這個頁面的信息)如果($flag)#Updateit $sqlCmd = #39;Update統(tǒng)計集ip=#39;#39;.$ips.#39;# 39;, views=#39;# 39;.$views.#39;# 39;, referrer=#39;# 39;.$referrers.#39;# 39; WHERE page=#39;# 39;.$ 第39頁39;# 39;;
#否則#在it $sqlCmd = #39中插入新的value;插入統(tǒng)計(第頁,ip,views,referrer)VALUES(#39;#39;.$ 第39頁39;, # 39;# 39;.$ips.#39;# 39;,# 39;# 39;.$views.#39;# 39;,# 39;# 39;.$referrers.#39;# 39;)# 39;; # executecommandssqliteexec($handle,$sqlCmd);
這就是它的過程PHP. 回顧一下,我們發(fā)現(xiàn)訪問者IP地址和引用使用值來創(chuàng)建兩個字符串,增加頁面視圖的數(shù)量,并將所有這些值放入數(shù)據(jù)庫。
現(xiàn)在只剩下一個任務(wù)了。我們必須展示網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)。我們把下面的文件display放進去PHP:ltDOCTYPEhtmlPUBLICquot;-//W3C//DTDXHTML 1.0transitional//分號;引用;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional。DTD引用;燃氣輪機;書信電報;html xmlns=quot;http://www.w3.org/1999/xhtmlquot; dir=報價;ltrquot;lang=quot;在美國;燃氣輪機;書信電報;頭部gt;lt;metahttp-當(dāng)量=quot;Content-類型quot;Content=報價;文本/html;charset=UTF-8quot/燃氣輪機;書信電報;一)所有權(quán);(1)Web Statistic)sdisplaylt/標(biāo)題;lt/頭部gt;書信電報;車身gt;
lt;PHP#打開數(shù)據(jù)庫$handle=sqlite#打開($SERVER。#39/統(tǒng)計數(shù)據(jù)庫#39;,0666,$sqlite錯誤)或die($sqlite錯誤);#Get all the statistics $sqlGet = #39;SELECT * FROM stats#39;; $result=sqlitequery($handle,$sqlGet);#創(chuàng)建無序列表echo quot;書信電報;烏爾格特;nquot;##如果有results If($result){$頁views =0;$unique_visitors = 0; # fetch而($info=sqliteu82array($result)){#獲取頁面,views,ips和referrers$page=$info;$views =$信息;$ips=$信息;$referrers=$info;#如果($views ==1)echo quot;tlt; 一)輕的;(1)ntt)lt;pgt;美元頁面已瀏覽$viewstime:lt;/前列腺素T;恩庫特;;else echo quot;tlt; 一)輕的;(1)ntt)lt;pgt;美元頁面已瀏覽$viewstimes:lt;/前列腺素T;nquot;;#Updatepage views$頁views+=$views;#Parse the data of IPs and Referrers using process.php#39;s code preg_match_all(#39;%(d+((*))%#39;,$ips, $matches ); # 查找數(shù)據(jù)的大小$size=count($matches);#創(chuàng)建子列表echo quot;ttlt;烏爾格特;nquot;##循環(huán)($i=0;$我lt;$大??;$i++){#找到訪問的number$num=$matches;
#查找IP address$ip=$matches;#如果($num==1)echo quot;ttt升;利格;$num時間乘以$iplt/利格特;恩庫特;;else echo quot;ttt升;利格;$num倍乘以$iplt/利格特;nquot;;#Updateunique訪客的number$uniqueu訪客+++;}#對referrers pregmatchu97)(#39;%(d+((*))%#39;,$referrers, $matches ); $ 大小=計數(shù)($matches);#循環(huán)遍歷($i=0;$我lt;$大小;$i++){$num=$matches;$referrer = $matches; # 如果($num==1)echo quot;ttt升;利格;$numref勘誤referrerlt/利格特;恩庫特;;else echo quot;ttt升;利格;$numref勘誤表referrerlt/利格特;nquot;;}#結(jié)束子列表echo quot;ttlt/烏爾格特;nquot;##結(jié)束列表元素echo quot;tlt;/利格特;nquot;;}回音quot;tlt; 一)輕的;(1)Total)unique訪客:$unique\訪客SLT/利格特;恩庫特;;回音quot;tlt; 一)輕的;(1)Total)page views:$第views頁lt/利格特;nquot;;}#結(jié)束無序列表echo quot;lt/烏爾格特;nquot;;#close數(shù)據(jù)庫sqliteclose($handle);燃氣輪機;
lt/車身gt;lt/htmlgt公司;
這看起來讓人望而生畏,但和過程非常相似PHP. 它解析頁面視圖IP地址,并從數(shù)據(jù)庫中引用它。然后,它繼續(xù)以無序列表格式輸出它們。
http://ezekroy.com/jianzhanzhishi/796.html 如何創(chuàng)建自己的程序(Javascript,ajax,PHP)