webメモ。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Posted by まこ
 
[スポンサー広告
PHPによる自作簡易アクセス解析(更新途中)
■とりあえず現段階のをまとめてupしたい。
 キーワード一覧機能だけでも実装させてから、かな。

■まずはログ取得の仕組み。 <?php //画像の作成 $img = imagecreate(1, 1);//(横幅,高さ) //背景色の設定 $backcol = imagecolorallocate($img, 0, 0, 0);//(画像リソース,R,G,B) //背景色を塗る imagefilledrectangle($img, 0, 0, 1, 1, $backcol);//(画像リソース,左上X,左上Y,右下X,右下Y,色) //透明にする imagecolortransparent($img, $backcol); //画像出力 header("Content-type: image/png"); header("Cache-control: no-cache"); imagepng($img); //画像の消去(メモリの解放) imagedestroy($img); //現在の日付を取得[0] $time = gmdate("Ymd",time()+60*60*9); //現在の時刻を取得[1] $time2 = gmdate("H:i",time()+60*60*9); //アクセスページを取得[2] $access_url = 'http://' . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]; //IPアドレスを取得[3] $ip=getenv("REMOTE_ADDR"); //ホスト情報を取得[4] $host = getenv("REMOTE_HOST"); if (!$REMOTE_HOST){$host = gethostbyaddr($ip);} //実行しているファイル名を取得[5] $self=$_SERVER[PHP_SELF]; //リファラー(リンク元)を取得[6] $refur = $_SERVER['HTTP_REFERER']; //使用ブラウザ[7] $ua=$_SERVER[HTTP_USER_AGENT]; //配列に格納 $syori = $time." ".$time2." ".$access_url." ".$ip." ".$host." ".$self." ".$refur." ".$ua."\n"; //ファイルを開く $fp = fopen("log/log.txt","a+"); //ファイルに書き込む if (!fwrite($fp,$syori)) {} //ファイルを閉じる fclose($fp); ?> ■設置するタグ <img src="php/counter.php" /> ■基本展開phpソース $fn = 'log/log.txt'; //データファイル名 $line = file($fn);//データを配列に格納 $line = array_reverse($line);//ソートを逆順 ■ブラウザ別カウント for ($a = 0; $a < count($line); $a++) {//ログの数だけ処理 $data = split("\t", $line[$a]); //タブ区切り //$data[$b]の中身メモ:0=年月日,1=時分,2=アクセスページ,3=IP,4=ホスト,5=実行しているファイル,6=リファラー,7=使用ブラウザ //ブラウザ別カウント if(preg_match('/msie/i',$data[7])){ //IEカウント $countie++; }else if(preg_match('/firefox/i',$data[7])){ //FireFoxカウント $countff++; }else if(preg_match('/safari/i',$data[7])){ //safariカウント $countsaf++; }else if(preg_match('/opera/i',$data[7])){ //operaカウント $countop++; }else if(preg_match('/chrome/i',$data[7])){ //GoogleChromeカウント $countgc++; }else if(preg_match('/gecko/i',$data[7])){ //geckoカウント $countgec++; }else if(preg_match('/DoCoMo.*/',$data[7])){ //携帯docomoカウント $countd++; }else if(preg_match('/KDDI.*/',$data[7])){ //携帯auカウント $counta++; }else if(preg_match('/SoftBank.*/',$data[7])){ //携帯softbankカウント $counts++; }else{//それ以外 $counto++; } //アクセス総数カウント $countrow++; } ■GETデータの渡し方 <form method="GET" action="**.php"> <input name="$**" size="*"> <input type="submit" value="送信"> </form> $** = $_GET['**']; ■Google検索結果から検索キーワードを抽出する //変数に検索結果を格納する $url = 'http://www.google.co.jp/~'; //「/q」~「&」までを取得する preg_match("/q=(.*?)&/",$url, $str_temp); print_r ($str_temp); echo '<hr />'; //デコードする $str = urldecode($str_temp[1]); echo ''.$str.'<hr />'; //空白を半角スペースに統一する $str = mb_convert_kana($str,"s"); ■実装完了
 ・ブラウザ別統計
 ・当日数/集計期間総数
 ・日付指定表示
 ・日付範囲指定表示
 ・各件数表示指定

■実装予定
 ・時間別数:日付を指定するとその日の合計数と時間別グラフを表示
 ・ページ別数:設置しているページを設定して設定されたページのみカウント
 ・リンク元別数
スポンサーサイト
Posted by まこ
comment:0   trackback:0
[tips
comment
comment posting














 

trackback URL
http://makoweb.blog.fc2.com/tb.php/48-8c544663
trackback
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。