我們在實際的項目開發(fā)過程中,經(jīng)常會有這樣的需求,就是開發(fā)的平臺,需要做一個在線訪問人數(shù)的一個統(tǒng)計,這個有什么作用呢?最重要的就是可以讓網(wǎng)站管理者知道這個網(wǎng)站平臺的活躍度,是否受歡迎?以及怎樣更好的對這個平臺進行宣傳推廣提供數(shù)據(jù)化依據(jù)。
我們要統(tǒng)計在一段時間內訪問站點的人數(shù),可以使用PHP,結合Mysql以及jQuery,展示一個統(tǒng)計在線人數(shù)以及訪客地區(qū)分布的示例。
通常,當訪客訪問網(wǎng)站時,頁面記錄用戶的cookie信息,當cookie過期即認為用戶不在線。本文中我們使用PHP記錄訪客IP,并在客戶端記錄cookie及過期時間,同時通過新浪IP地址接口,獲取訪客的地理位置(本例只記錄省份),一并寫入mysql表中,即可統(tǒng)計一段時間內的訪客總數(shù),也可以查看訪客的地區(qū)分布。
HTML
我們在頁面上放置一個顯示當前在線人數(shù)的div#total以及一個用于展示訪客地區(qū)分布的列表#onlinelist,默認我們在列表中放置一張與加載動畫圖片,后面我們用jQuery控制當鼠標滑向時展示詳細列表。
CSS
我們用CSS來渲染顯示效果,為了就是不讓我們的示例很難看,下面的代碼中,我們使用了CSS3,時代在進步啊,所以建議使用現(xiàn)代瀏覽器預覽效果。
Mysql
我們要準備一張數(shù)據(jù)表online,用來記錄訪客IP、地區(qū)及訪問時間。整個示例統(tǒng)計過程都依賴這張表,其結構如下:
PHP
online.php用來記錄訪客信息,包括IP地址和地區(qū)。首先檢測數(shù)據(jù)表中是否有訪客IP記錄,如果有,則只更新訪問時間,否則,獲取用戶省份區(qū)域,并將用戶IP即省份區(qū)域插入到表中。在此,可以判斷是否存在訪客的cookie記錄,如果不存在則向新浪IP地址庫請求獲取訪客的區(qū)域信息,并設置cookie值和過期時間。最后,我們刪除表中已經(jīng)過期的記錄,統(tǒng)計總記錄數(shù)并輸出,詳細請看代碼注釋。
函數(shù)get_client_ip()用來獲取用戶真實IP。
geo.php用來統(tǒng)計各省份(區(qū)域)訪客人數(shù)分布。通過查詢數(shù)據(jù)庫,并按省份分組排序即可,注意我們將最終的數(shù)據(jù)集以JSON的形式輸出,便于前端ajax交互。
jQuery
前端頁面需要做的是,頁面加載時展示訪客總數(shù),即使用ajax請求online.php即可。然后當鼠標滑向統(tǒng)計箭頭時,通過ajax請求geo.php獲取各區(qū)域省份的在線人數(shù),并以下拉的方式展現(xiàn)效果。
溫馨提示:該示例依賴jquery,所以別忘了在頁面中請先加載jquery庫。
南昌雅騰教育專注IT職業(yè)技術培訓,主要培養(yǎng):PHP軟件開發(fā)工程師、WEB前端開發(fā)工程師
學習熱線:15079188802(程老師)
QQ:1939594233