PHPでアクセス解析を自作してみよう 【第一回】

  • 投稿 : 2013-07-06
  • 更新 : 2014-06-26

本記事は広告およびアフィリエイトプログラムによる収益を得ています

今回は、アクセスログをファイルに書きだすところまでです。
たぶん、第2回とかはありません・・・。


1.アクセス解析を導入することで重くなるのを防ぐために、非同期(async)で呼び出す
2.検索から来た時のみ、呼び出す
3.JavaScriptで情報を取得して、GetのパラメータでPHPスクリプトに渡す
4.今回は、CSV形式(カンマ区切り)でファイルに出力する

サンプルコード

JavaScript(埋め込み側)

jQueryを利用してるので、別途組み込んでください。
<script type="text/javascript">
<!--
//リファラー
var ref=document.referrer;
//記事タイトル
var title=document.title;
//記事URL
var urlx=new String(document.location);

var get_data = {ref:ref,title:title,url:urlx};

//検索から来た時のみ、呼び出す
if(ref.indexOf("search")!=-1 || ref.indexOf("google")!=-1){
  jQuery.ajax({
     async: true,
     type: 'GET',
     url: 'http://example.com/tools/log.php',
     data:get_data,
  });
}
//-->
</script>
上記をアクセス解析したいページに埋め込みます。

・記事タイトル
・記事URL
・リファラー
をPHPスクリプトに渡します。

PHPスクリプトは、
「http://example.com/tools/log.php」にある場合は、上記のようになります。

PHPスクリプト側

<?php
$fileName ="log.txt";
$outline = urldecode($_GET["ref"]).",".$_GET["title"].",".$_GET["url"];

$time = time() + 9*3600;  //GMTとの時差9時間を足す
$time2= gmdate("Y/m/d H:i:s ", $time);

//------------------------------
//ファイルがないときは作成
//------------------------------
if( !file_exists($fileName) ){
   touch( $fileName );
}
//------------------------------
//追記
//------------------------------
$fp = fopen($fileName, "a");
fwrite($fp, $time2.",".$outline."\n");
fclose($fp);

?>





ログ出力サンプル 1行分

2013/06/26 03:00:13 ,http://www.google.co.jp/url?sa=t&rct=j&q=爪 割れた アロンアルファ&source=web&cd=8&ved=0CFcQFjAH&url=https://blog2.k05.biz/2011/08/00282.html&ei=fdrJUY7AJ4nEkQWSyoDYAw&usg=AFQjCNG0LYAe-QED97tw8OsgoklSEIMSPw&bvm=bv.48293060,d.dGI,爪が割れた時の対処方法 【コロスキン,アロンアルファ】 | 某氏の猫空,https://blog2.k05.biz/2011/08/00282.html

サンプルでは、log.txtに上記のような感じで出力(追記)されます。
リファラーをみれば、アクセス元や検索キーワードなどがわかります。

PHPスクリプトの動作確認は、「ロリポップ!」で行いました。
スポンサーリンク