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