////////////////////////////////////////////////////////////////////////////////////
// アクセス解析したいWEBページに //
// include("相対パスで当ファイルを記述してください"); //
// 記述してください //
// 例:count.phpがhttp://aineko.com/test1/access_analyzer/count.phpの場合 //
// http://aineko.com/から呼ぶ場合はinclude("./test1/access_analyzer/count.php"); //
// になります //
// また、http://aineko.com/test1/access_analyzer/count.phpで //
// http://aineko.com/test2/から呼ぶ場合は //
// include("../test1/access_analyzer/count.php");と記述します //
// 上記の記述したWEBページだけをアクセス解析できます //
////////////////////////////////////////////////////////////////////////////////////
?>
//設定ファイルを読み込む
include("config.php");
//呼び出されたURLを記録する。
$access_url = 'http://' . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI];
///////////////////////////////////////////////////
// ログファイルの保存フォルダを求める /////
///////////////////////////////////////////////////
$path2 = $access_url;
//「/」で区切って配列に格納する
$path1 = split('/',$path1);
$path2 = split('/',$path2);
$num1 = count($path1);
$num2 = count($path2);
//ログを保存するフォルダを格納する変数
$log_file_path;
/*
for($i=0;$i<$num2;$i++){
if($path1[$i]==$path2[$i]){
}
//ディレクトリが一致しなかった場合の以後の処理
else{
//同ディレクトリに存在する場合
if($num2==$i+1 && $num1==$i+1){
$log_file_path ="log.txt";
break;
}
//下に行くディレクトリの場合
if($num2<$num1){
$log_file_path = "./";
for($j=$i;$j<$num1-1;$j++){
$log_file_path = $log_file_path . $path1[$j] . "/";
}
$log_file_path = $log_file_path . "log.txt";
break;
}
//それ以外の場合は上へ行くディレクトリ
//(全体-同じ数-呼び出しファイルはディレクトリではないため)
if($num2>$num1){
$up_num = $num2 - $i - 1;
for($j=0;$j<$up_num;$j++){
$log_file_path = $log_file_path . "../";
}
for($j=$i;$j<$num1-1;$j++){
$log_file_path = $log_file_path . $path1[$i]."/";
}
$log_file_path = $log_file_path . "log.txt";
break;
}
}
}*/
$log_file_path = "../access_analyzer/log.txt";
//echo "確認".$log_file_path;
//現在の日付
$now_time = gmdate("Ymd",time()+60*60*9);
//logファイルが作られた日が同じかどうか確認する
$access_data = date('Ymd',filemtime($log_file_path));
//日付が違う場合はログを移動する
if($now_time!=$access_data){
//前日のログを移動する
$write_file = str_replace("log.txt","",$log_file_path);
$write_file = $write_file . "log/" . $access_data . ".txt";
copy($log_file_path,$write_file);
//新しいアクセスログを操作
unlink($log_file_path);
touch($log_file_path);
}
//ログを書き込む
#現在の日付を取得
$time = gmdate("Y/m/d",time()+60*60*9);
#現在の時刻を取得
$time2 = gmdate("H:i",time()+60*60*9);
#日付の取得
$time3 = date("D",time()+60*60*9);
#IPアドレスを取得
$ip=getenv("REMOTE_ADDR");
#ホスト情報を取得
$host = getenv("REMOTE_HOST");
if (!$REMOTE_HOST){
$host = gethostbyaddr($ip);
}
#直前のURLを取得
$url=getenv("HTTP_REFERER");
if($url==""){
$url="お気に入りor直リンク";
}
#ブラウザ情報を取得
$brw=getenv("HTTP_USER_AGENT");
if($brw==""){
$brw="なし";
}
$idnum=0;
#データをタブ区切りによって、1つに集結
$syori = $time."\t".$time2."\t".$time3."\t".$ip."\t".$host."\t".$url."\t".$brw."\t".$idnum."\t".$access_url."\n";
$fp = fopen($log_file_path,"a+");
if (!$fp) {
print("ファイルポインタのオープンに失敗しました。
\n");
exit;
}
if (!flock($fp,2)) { //ファイルの排他ロック
print("ファイルロックに失敗しました。
\n");
exit;
}
/* ファイルに書き込み */
fseek($fp,SEEK_SET);
if (!fputs($fp,$syori)) {
print("書き込みに失敗しました。
\n");
exit;
}
if (!flock($fp,3)) { //ファイルのロック解放
print("ファイルロックの解放に失敗しました。
\n");
exit;
}
fclose($fp);
//echo "正常終了";
?>Back Nextまだ未更新です