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

今回は、アクセスログをファイルに書きだすところまでです。
たぶん、第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=http://blog2.k05.biz/2011/08/00282.html&ei=fdrJUY7AJ4nEkQWSyoDYAw&usg=AFQjCNG0LYAe-QED97tw8OsgoklSEIMSPw&bvm=bv.48293060,d.dGI,爪が割れた時の対処方法 【コロスキン,アロンアルファ】 | 某氏の猫空,http://blog2.k05.biz/2011/08/00282.html

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

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

スポンサーリンク

コメントを残す

メールアドレスは公開されません。
また、コメント欄には、必ず日本語を含めてください(スパム対策)。