i-mode,Vodafone,EzWeb の3つのキャリアを判定し、
キャリアごとのカウンタを表示するプログラムです。
PC: 10 i-mode: 5 EzWeb: 3 Vodafone: 1
↑このように表示されます。
preg_match関数を使ってみましょう。
<?php
$filename = "./count.dat"; // データファイル名
$keta = 5; //カウンタ表示桁数
$file = fopen($filename,"r+");
$buffer = fread($file,filesize ($filename));
list($pc,$imode,$ez,$vodafone,$ip) = explode("<>",$buffer);
$myip = getenv("REMOTE_ADDR");
if($myip != $ip){ //同一IPでなければカウントアップ
if(preg_match("/DoCoMo/i",$_SERVER['HTTP_USER_AGENT'])){ // ドコモにマッチ
$imode++;
} else if(preg_match("/J-PHONE/i",$_SERVER['HTTP_USER_AGENT'])){ // Vodafoneにマッチ
$vodafone++;
} else if(preg_match("/UP\.Browser/i",$_SERVER['HTTP_USER_AGENT'])){ // auにマッチ
$ez++;
} else{
$pc++;
}
}
$pc = sprintf("%0".$keta."d",$pc);
$imode = sprintf("%0".$keta."d",$imode);
$ez = sprintf("%0".$keta."d",$ez);
$vodafone = sprintf("%0".$keta."d",$vodafone);
//表示部(編集してください)
echo "PC: $pc i-mode: $imode EzWeb: $ez Vodafone: $vodafone";
ftruncate($file,0);
rewind($file);
//ファイルロック処理
flock($file,LOCK_EX);
fwrite($file, $pc."<>".$imode."<>".$ez."<>".$vodafone."<>".$myip);
flock($file,LOCK_UN);
fclose($file);
?>
キャリアごとのカウンタを表示するプログラムです。
PC: 10 i-mode: 5 EzWeb: 3 Vodafone: 1
↑このように表示されます。
preg_match関数を使ってみましょう。
<?php
$filename = "./count.dat"; // データファイル名
$keta = 5; //カウンタ表示桁数
$file = fopen($filename,"r+");
$buffer = fread($file,filesize ($filename));
list($pc,$imode,$ez,$vodafone,$ip) = explode("<>",$buffer);
$myip = getenv("REMOTE_ADDR");
if($myip != $ip){ //同一IPでなければカウントアップ
if(preg_match("/DoCoMo/i",$_SERVER['HTTP_USER_AGENT'])){ // ドコモにマッチ
$imode++;
} else if(preg_match("/J-PHONE/i",$_SERVER['HTTP_USER_AGENT'])){ // Vodafoneにマッチ
$vodafone++;
} else if(preg_match("/UP\.Browser/i",$_SERVER['HTTP_USER_AGENT'])){ // auにマッチ
$ez++;
} else{
$pc++;
}
}
$pc = sprintf("%0".$keta."d",$pc);
$imode = sprintf("%0".$keta."d",$imode);
$ez = sprintf("%0".$keta."d",$ez);
$vodafone = sprintf("%0".$keta."d",$vodafone);
//表示部(編集してください)
echo "PC: $pc i-mode: $imode EzWeb: $ez Vodafone: $vodafone";
ftruncate($file,0);
rewind($file);
//ファイルロック処理
flock($file,LOCK_EX);
fwrite($file, $pc."<>".$imode."<>".$ez."<>".$vodafone."<>".$myip);
flock($file,LOCK_UN);
fclose($file);
?>