سفارش تبلیغ
صبا ویژن
 
آموشهای تخصصی کامپیوتر و طراحی سایت
درباره وبلاگ


لینک های ویژه
طول ناحیه در قالب بزرگتر از حد مجاز
آمار وبلاگ
  • بازدید امروز: 12
  • بازدید دیروز: 11
  • کل بازدیدها: 411269



چهارشنبه 92 خرداد 22 :: 3:34 عصر ::  نویسنده : smfatemi

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

آبان 16, 1390 | نویسنده: admin | ارسال در: آموزش php

در این مطب ما قصد داریم که یک شمارنده آمارگیر ساده که فقط تعداد دفعات بازدید صفحات را نشان می دهد را طراحی و ایجاد کنیم.

مقدمه
برای شروع شما نیاز دارید تا کمی در مورد php بدانید. البته ما سعی می کنیم تمام اسکریپت ها و توابع را به صورت خلاصه توضیح دهیم. این اسکریپتی که ما ایجاد می کنیم قرار است تا هر بار که یک بازدید کننده از سایت دیدن کرد و یا حتی صفحه Refresh شد یکی به تعداد بازدید ها افزوده شود.
در ضمن در این آموزش ما دو فایل یکی با نام های counter ولی با فرمت های txt و php می سازیم و لازم است که وب سرور شما از زبان php پشتیبانی کند. همین طور برای اجرای این اسکریپت بر روی رایانه شخصی خودتان می توانید از لوکال هاست (هاست محلی) استفاده کنید، برای این کار استفاده از WAMP Server و یا XAMPP Server را به شما پیشنهاد می کنیم.

 

ایجاد فایل های لازم
ابتدا لازم است که دو فایل اصلی را ایجاد کینم، ابتدا یک فایل txt با نام counter ایجاد می کنیم و فقط در داخل آن عدد 1 را می گزاریم.
سپس یک فایل php با نام counter نیز ایجاد می کنیم و لازم است تا کد هایی را در این فایل بنویسیم.

مرحله اول پیاده سازی دستورات
ابتدا کدهای زیر را در یک ویرایشگر مثل notepad یا dreamweaver را در فایل counter.php می نویسیم.

<?php
$file_name = “counter.txt”;
$file = fopen($file_name, “r”);

$count= fread($file,filesize($file_name));
echo($count);
?>

حال صفحه را با مرورگر مشاهده می کنیم، مطمئنا چیزی که می بینیم عدد 1 است، در واقع ما محتویات فایل counter.txt را در نمایش داده ایم. حال صفحه را Refresh کنید، همچنان عدد 1 نمایش داده می شود. اما برای این که بفهمیم که چرا 1 تبدیل به 2 نشد ابتدا لازم است در مورد کد های بالا نکات و توضیحات مختصری را توضیح دهیم.
1- هر دستور php با توجه به الگوی زیر به کار برده می شود:

2- برای ایجاد و استفاده از یک متغیر باید نام متغیر را با علامت $ به کار برد. در واقع ما در خط دوم یک متغیر با نام file_name ایجاد کرده ایم و مقدار آن را counter.txt قرار داده ایم. (آدرس فایلی که قرار است مورد استفاده قرار گیرد – توجه شود که دو فایل باید در یک پوشه باشند، در غیر این صورت آدرس فایل را باید تغییر دهید.)

3- fopen یک تابع است که یک فایل را باز می کند تا یا محتویات آن را بخواند و یا آن را تغییر دهد و یا هر دوی این کار ها را با هم انجام دهد، و دو آرگومنت(پارامتر) می پذیرد، در پارامتر اول آدرس فایل و در پارامتر دوم مدل باز شدن مشخص می گردد. با توجه به خط سوم کدهای بالا، ما با تابع fopen یک فایل (counter.txt) را باز کرده ایم و مدل آن را بر روی r قرار داده ایم، یعنی این که فایل فقط قابلییت خواندنی (read) دارد و خروجی تابع fopen را به متغیر file نسبت داده ایم.
4- تابع fread محتویات فایل باز شده را می خواند و با توجه به خط چهارم از کدهای بالا، ما آن را به متغیر count نسبت داده ایم. این تابع نیز دو پارامتر می پذیرد، اولین پارامتر همان فایلی است که باز شده است (در این جا جریان ایجاد شده به متغیر file نسبت داده شده است). در واقع وقتی از تابع fopen استفاده می کنیم، این تابع یک خروجی دارد که با زبانی ساده باعث ایجاد یک جریان ارتباطی با فایل مورد نظر می شود، حال ما از این جریان برقرار شده استفاده می کنیم و محتویات فایل مورد نظر را می خوانیم. پارامتر دوم هم سایز کاراکترهایی که باید خوانده شود را مشخص می کند و تابع file_size هم حداکثر سایز محتویات فایل مورد نظر را مشخص می کند. به این ترتیب مقدار متغیر count برابر با 1 می شود.
5- echo هم محتویات count را روی صفحه مرورگر نمایش می دهد.
6- تابع fclose هم فایل مورد نظر را می بندد (این کار لازم است، زیرا به هنگام باز کردن مجدد آن به مشکل برنخوریم.)

مرحله دوم پیاده سازی دستورات
حال موقع است که اسکریپت شمارنده را تکمیل کنیم، برای این کار دستوراتی را به کدهای قبلی اضافه می کنیم، پس داریم:

<?php
$file_name = “counter.txt”;
$file = fopen($file_name, “r”);

$count= fread($file, filesize($file_name));
echo($count);

fclose($file);
//code haye ezafe shodeh…
$file = fopen($file_name, “w”);
$count = $count + 1;
fwrite($file , $count);
fclose($file);
?>

نکاتی که در کدهای اضافه شده قابل ذکر است به ترتیب:
1- دوباره فایل counter.txt را باز می کنیم.
2- ما فایل را به صورت w، یعنی این که امکان تغییر در محتویات را داریم (write) اعلان کرده ایم.
3- مقدار count یعنی 1 را به اندازه یک واحد افزایش می دهیم و آن را دوباره در count ذخیره می کنیم.
4- مقدار count جدید را به جای محتویات قبلی فایل باز شده بروز می کنیم، این کار را با استفاده از تابع fwrite انجام می دهیم، همان طور که مشخص است، این تابع دو پارامتر می پذیرد که اولی همان اشاره گر به جریان ایجاد شده و دومی هم مقدار جدیدی است که برای فایل در نظر گرفته ایم، می باشد.
5- فایل را می بندیم.

حال مجددا صفحه مورد نظر را با مرورگر باز کنید، همان طور که می بینید با هر بار Refresh کردن صفحه یک واحد به شمارنده افزوده می شود. این همان چیزی است که ما می خواستیم.

موفق باشید.




موضوع مطلب :