وبگرانکد های phpنمایش آمار بازدیدها با PHP بدون استفاده از دیتابیس

نمایش آمار بازدیدها با PHP بدون استفاده از دیتابیس

نمایش آمار بازدیدها با PHP بدون استفاده از دیتابیس

در این مقاله می خواهیم نمایش آمار بازدیدها با PHP بدون استفاده از دیتابیس را به شما معرفی کنیم. شاید استفاده از دیتابیس هم کار بیهوده ای به نظر برسد چرا که به راحتی می توان با استفاده از یک یا دو فایل txt این کار را به راحتی انجام داد.خب ممکن است بپرسید چرا اصلا باید با دیتابیس کار کرد در حالی که با فایل های txt و کد های php مناسب می توان این کار را راحت و بدون دردسر انجام دهیم؟پاسخ این سوال این است که از دیتابیس برای ثبت اطلاعات بسیار زیاد مثل ثبت مقالات و نظرات استفاده می شود. اما برای ثبت مواردی مثل چند عدد لازم به چنین کاری وجود ندارد.

نمایش آمار بازدید ها با استفاده از php

در ابتدا یک فایل با نام stats.php می سازیم و کد های زیر را داخل آن قرار می دهیم:

//اختلاف زمانی سرور$time_zone = 12600;$today = date("Y-m-d", time() + $time_zone);//تاریخ امروز$yesterday = date("Y-m-d", time() - 86400 + $time_zone);//تاریخ دیروز$week_visit = 0;//متغیرهای پیش فرض$month_str = null;$month_visit = 0;

//آدرس فایل
$file_src = 'include/visit-stats.txt';chmod($file_src, 0755);

//خواندن فایل
if (filesize($file_src) > ۰ || $read_file != ''){$read_file = file_get_contents($file_src);

//اگر فایل خالی نبود
    $modify = $split_file[31];    $split_file = explode('|', $read_file);
    
    //print_r($split_file);
    //اگر تاریخ آخرین ویرایش برابر تاریخ امروز نبود
    if($modify != $today){
        }
        $today_visit = 1;
        if($modify == $yesterday){
            $yesterday_visit = $split_file[0];
        } else{
            $yesterday_visit = 0;
        for($i = 2; $i < 30; $i++) {        $week_visit += $today_visit + $yesterday_visit;        $month_visit += $today_visit + $yesterday_visit;            $month_str .= $split_file[$i - 1];
            
            if($i < 29) {
            }
                $month_str .= '|';
            if($i < 8) {
        $total_visit = $split_file[30] + 1;                $week_visit += $split_file[$i - 1];
            }
        }
            $month_visit += $split_file[$i - 1];
        $month_visit += $today_visit + $yesterday_visit;
        $last_modify = $today;
    } //اگر تاریخ آخرین ویرایش برابر امروز بود
        $today_visit = $split_file[0] + 1;
    else{
        $yesterday_visit = $split_file[1];

        $week_visit += $today_visit + $yesterday_visit;
                $week_visit += $split_file[$i];        for($i = 2; $i < 30; $i++) {            $month_str .= $split_file[$i];
            
            if($i < 29) {
            }
                $month_str .= '|';
            
            if($i < 8) {
    $week_visit = 1;
            }
            $month_visit += $split_file[$i];
        }
        $last_modify = $today;
        $total_visit = $split_file[30] + 1;
    }
} //اگر فایل خالی بود
else{
$visit_data = $today_visit . '|' . $yesterday_visit . '|' . $month_str . '|' . $total_visit . '|' . $last_modify;
    $today_visit = 1;
    $yesterday_visit = 0;
    $month_visit = 1;
    for($i = 2; $i < 30; $i++) {
        $month_str .= '0';
            $month_str .= '|';
        
        if($i < 29) {
    $total_visit = 1;
        }
    }
//نوشتن آمار جدید در فایل
    $last_modify = $today;
}
//خواندن اطلاعات فایل
$file_src_handle = fopen($file_src, 'w+');
fwrite($file_src_handle, $visit_data);
//محاسبه تعداد کاربران آنلاین
fclose($file_src_handle);

$config_array = array(
'user_ip' => $_SERVER['REMOTE_ADDR'],
'user_time' => date("YmdHis", time() + $time_zone),
'file_name' => 'include/visit-online.txt'
);
//حذف آی پی های قدیمی و آی پی فعلی
chmod($config_array['file_name'], 0755);
$online_file = file_get_contents($config_array['file_name']);

//تجزیه به آرایه
//حذف مقادیر خالی
$online_file = explode("\r\n", $online_file);
    if(is_null($value) || $value == ''){
foreach($online_file as $key=> $value){
        unset($online_file[$key]);
    }
}
    if($user_ip_time[1] >= date("YmdHis", time() + $time_zone - 300)){
foreach($online_file as $key=> $value){
    $user_ip_time = explode("|", $value);
    if($user_ip_time[1] <= date("YmdHis", time() + $time_zone - 300)){
        unset($online_file[$key]);
    }
        unset($online_file[$key]);
    if($user_ip_time[0] == $config_array['user_ip']){
    }
}

//محاسبه تعداد افراد آنلاین
    $user_ip_time = explode("|", $online_users);
$online = 1;
foreach($online_file as $online_users){
        $online++;
    }
}
//گرفتن خروجی//آمار کاربرانی که آنلاین هستند به اضافه کاربر فعلی$new_online = $config_array['user_ip'] . "|" . $config_array['user_time'] . "\r\n";;
foreach($online_file as $key=> $value){
    $new_online .= $value . "\r\n";
}
$file_src_handle = fopen($config_array['file_name'], 'w+');
//نوشتن آمار جدید در فایل
fwrite($file_src_handle, $new_online);
fclose($file_src_handle);
?>
echo '
» بازدید امروز: ' . $today_visit . '
» بازدید دیروز: ' . $yesterday_visit . '
» بازدید هفته: ' . $week_visit . '
» بازدید کل: ' . $total_visit . '
» بازدید ماه: ' . $month_visit . '
» افراد آنلاین: ' . $online . '
';

حال به دو فایل با پسوند txt نیاز داریم تا اطلاعاتمان را در آن ثبت کنیم:پس دو فایل با نام های visit-online.txt و visit-stats.txt در کنار فایل stats.php ایجاد می کنیم.به همین راحتمی می توانیم یک آمار بازدید ساده و سبک و فقط با استفاده از کد های php بسازیم.خروجی چیزی شبیه به اطلاعات زیر است:

» بازدید امروز: ۱۲» بازدید دیروز: ۳۲» بازدید هفته: ۱۴۸» بازدید ماه: ۱۴۸» بازدید کل: ۱۵۲» افراد آنلاین: ۱


اشتراگ گذاری در:
اگه خوبه لایکش کن




دیدگاه بگذارید

avatar
  Subscribe  
Notify of