loading...
افزایش رتبه الکسا رایگان تضمینی
ثبت نام مستر کارت رایگان

برای ثبت نام بر روی تصویر کلیک نمایید

آخرین ارسال های انجمن
عنوان پاسخ بازدید توسط
پیامک زیبای فلسفی 0 120 hengame
اس ام اس خنده دار برای تجدید روحیه 0 106 hengame
اس ام اس مهربانی 0 104 hengame
اس ام اس سرکاری ماه رمضان 0 96 hengame
اس ام اس تبریک روز نیروی انتظامی 0 94 hengame
نحوه ورود به حالت Safe Mode در اندروید 0 103 ghazal
من او را دوست می دارم...(مرتضی درویشی) 0 96 ghazal
خیال نرگس مستت، ببست خوابم را (سلمان ساوجی) 0 108 ghazal
داستان طنز: از فرصت ها استفاده کنید! 0 94 ghazal
داستان عاشقانه همکلاسی 0 82 ghazal
اس ام اس خنده دار و سرکاری جدید 0 108 gelare
پیامک فلسفی جدید 0 80 gelare
اس ام اس خنده دار تبریک تولد 0 84 gelare
اس ام اس عاشقانه مخصوص روزای بارونی 0 99 gelare
اس ام اس عاشورای حسینی 0 92 gelare
عاشق شدن پادشاه بر کنیزک رنجور ( مولوی ) 0 88 yasamin
شعر شوق از فروغ فرخزاد 0 72 yasamin
داستان عشق و ثروت و موفقیت 0 82 yasamin
اس ام اس شهادت امام سجاد (ع) 0 82 yasamin
گفت‌وگویی پیرامون ازدواج (طنز) 0 87 yasamin
اس ام اس فلسفی و جملات قصار زیبا (8) 0 102 ziiba
اس ام اس روز عشق 0 73 ziiba
اس ام اس خنده دار و سرکاری تابستان 0 80 ziiba
اس ام اس ضد پسر 0 82 ziiba
اس ام اس ولادت امام موسی کاظم(ع) 0 79 ziiba
اس ام اس چهارشنبه سوری (2) 0 84 faranak
اس ام اس سرکاری ماه رمضان(2) 0 79 faranak
اس ام اس طنز و خنده دار (5) 0 95 faranak
اس ام اس فلسفی و جملات قصار زیبا (5) 0 79 faranak
اس ام اس خاطره های عاشقانه و غمگین 0 88 faranak
Hadi بازدید : 0 یکشنبه 20 بهمن 1392 نظرات (0)

 


درا؟ایجاد دیسک راه انداز همان طور که گفتیم نرم افزار Bootsuite برای تعمیر مشکلات مربوط به بوت سیستم عامل و زمان هایی که قصد دارید بدون نیاز به سیستم عامل به انجام برخی امور بپردازید، طراحی شده است. برای استفاده از این امکانات شما باید در اولین اقدام، یک راه انداز بوت برای خودتان ایجاد کنید.

شما می توانید فایل های راه انداز را روی سی دی و دی وی دی ذخیره کنید یا حتی یک حافظه فلش را به راه انداز بوت تبدیل کنید.

روش ایجاد هریک از گزینه های مورد اشاره عبارت است از:


1ـ ایجاد دیسک بوت

پس از نصب و اجرای نرم افزار روی گزینه Create Bootable CD کلیک کنید.

گزینه Burn CD Now را کلیک کنید تا پنجره نرم افزار ImgBurn به نمایش درآید.

در این مرحله باید در بخش Source فایل ایمیج نرم افزار را انتخاب و در بخش Destination نیز رایتر را انتخاب کنید.

در نهایت روی گزینه مورد نظر، برای شروع عملیات راست کلیک کرده و منتظر بمانید تا دیسک بوت شما آماده شود.


2 ـ ایجاد فلش بوت

ساخت فلش بوت نیز بسادگی دیسک بوت امکان پذیر است. برای انجام این کار باید پس از کلیک روی Create bootable USB گزینه Burn USB Now را کلیک کنید.

پس از اجرای نرم افزار USB Burner در بخش Disk Image فایل ایمیج نرم افزار را انتخاب کرده و پس از اتصال یک حافظه فلش خالی به رایانه، آن را از فهرست USB Drive انتخاب کنید.

روی گزینه OK کلیک کرده و در ادامه هشدار به نمایش درآمده درباره پاک شدن اطلاعات ذخیره شده روی حافظه فلش را نیز با کلیک روی Yes تائید کنید.

منتظر بمانید تا عملیات انتقال فایل های موردنظر به حافظه فلش پایان یافته و فلش بوت شما آماده شود.


قدم دوم: بوت از سی دی یا فلش

عملیات بوت به طور پیش فرض یک اولویت بندی دارد و در بسیاری از رایانه ها اولویت اول به فلاپی دیسک، اولویت دوم به هارد دیسک و اولویت های بعدی به درایو نوری، حافظه فلش، ارتباط شبکه و... تعلق دارد. چنانچه قصد دارید با دیسک یا حافظه فلش رایانه خود را بوت کنید باید در اولویت های پیش فرض تغییراتی را ایجاد کنید. برای انجام این کار باتوجه به مدل مادربورد رایانه خود پس از روشن کردن رایانه یکی از کلیدهای Delete ،F2 یا F12 را فشار دهید تا به صفحه تنظیمات بایوس وارد شوید.

گزینه های به نمایش درآمده در این صفحه باتوجه به هر مادربورد می تواند متفاوت باشد؛ اما نقطه مشترکی که در تمام آنها دیده می شود، پشتیبانی از بخشی با عنوان Boot است. شما باید از میان گزینه های موجود، این بخش را پیدا کرده و پس از مراجعه به آن به دنبال گزینه ای شامل عبارت Boot Priority یا گزینه های مشابه دیگری باشید که مواردی همچون هارد دیسک، فلاپی، درایو نوری و .... در آنها به ترتیب فهرست شده است.

در این مرحله باید گزینه اول یعنی 1st یا First را به CD-ROM (به منظور بوت از روی دیسک نوری) یا Removable (برای بوت از روی فلش) تغییر دهید. همچنین در مواردی باید برای اعمال این تغییرات گزینه های بالاتر را غیرفعال (Disable) کنید تا اولین گزینه فعال مربوط به CD-ROM یا Removable باشد.

اکنون با قرار دادن دیسک بوت در درایو نوری یا اتصال فلش بوت به رایانه و راه اندازی مجدد رایانه، دستگاه شما با نرم افزار راه انداز Bootsuite بوت می شود.

تعمیر بوت با همه امکانات


قدم سوم: نجات ویندوز

پس از بوت رایانه توسط نرم افزار Bootsuite، گزینه های مختلفی برای تعمیر بوت و انجام دیگر فعالیت ها در اختیار شما قرار می گیرد، که یکی از آنها Windows Recovery است. هنگ های متوالی سیستم عامل، صفحه خطای مشکی یا آبی، بوت نشدن سیستم عامل، توقف در پنجره خوشامدگویی ، خطاهایی همچون Ntldr is missing error loading operating system ، خطاهای رجیستری، بوت نشدن به واسطه آلوده شدن رایانه به ویروس ها و بسیاری از خطاهای رایج دیگر که به بوت سیستم عامل و عملکرد آن مربوط می شوند، توسط گزینه های موجود در این بخش قابل تعمیر اند.

ویرایشگر رجیستری، ویرایشگر بوت، دسترسی به خط فرمان (Command Prompt) و اجرای ابزار پشتیبان گیری ویندوز از دیگر امکاناتی است که در این بخش در اختیار شما قرار می گیرند.


قدم چهارم: نجات اطلاعات

گاهی اوقات ممکن است بازگردانی ویندوز آن قدرها هم برای شما دارای اهمیت نباشد یا حتی نرم افزار Bootsuite نیز قادر به بازگردانی ویندوز رایانه شما به حالت پایدار نباشد، اما قصد داشته باشید پیش از نصب مجدد ویندوز از اطلاعات مهم و ضروری خود یک نسخه پشتیبان تهیه کنید. در این موارد گزینه Data Recovery بهترین انتخاب است. با استفاده از این گزینه علاوه بر انتقال اطلاعات از هارد دیسک به حافظه فلش یا دیگر رسانه های ذخیره ساز می توانید نسبت به بازیابی فایل های حذف شده و حتی پارتیشن های فرمت شده نیز اقدام کنید.

قدم پنجم: مدیریت دیسک سخت

گزینه Disk Management نیز ابزاری قدرتمند برای مدیریت دیسک سخت یا همان هارد دیسک است. به کمک این ابزار می توانید از کل اطلاعات هارد دیسک یک نسخه کپی تهیه کرده یا یکی از پارتیشن های موردنظرتان را تکثیر کنید. با انجام این کار می توانید سیستم عامل را از هاردی به هارد دیگر منتقل کرده و براحتی هارد دیسک قدیمی خود را کنار بگذارید. همچنین در این بخش شما با ابزاری با عنوان Wipe Data می توانید با خیال راحت به حذف اطلاعات موردنظر خود بپردازید. حذف اطلاعات به این روش موجب می شود هیچ نرم افزاری قادر به بازیابی اطلاعات شما نباشد و به همین سادگی حذف غیرقابل بازگشت نیز در اختیار شما قرار می گیرد.

قدم ششم: عبور از رمزها

پاک کردن رمز عبور ویندوز و گذر از آن از جمله امکانات دیگری است که توسط BootSuite در اختیار شما قرار می گیرد . بخش Password * Key Finder شما را قادر می سازد ضمن حذف رمزعبور کاربر مدیر سیستم عامل، سریال و کد فعال سازی دیسک نصب ویندوز و نرم افزارهای دیگر همچون مجموعه آفیس را نیز بازیابی کنید.

Hadi بازدید : 0 یکشنبه 20 بهمن 1392 نظرات (0)

 

php-curl-file-get-contents

زمانی که از ارسال پارامتر در وب صحبت می کنیم، بیشتر ذهنمان معطوف به فرم های HTML و متد POST یا GET می شود، البته این شیوه مرسوم و پرکاربردی برای ارسال داده ها از مرورگر (سمت کاربر) به یک سایت (سمت سرور) است، اما گاهی مواقع نیاز است که از این قالب سنتی پا را فراتر بنهیم و از روش های دیگری نیز استفاده کنیم، به فرض از همین استاندارد POST و GET در ارسال درخواست های آژاکسی (Ajax) نیز به سرور استفاده می شود، از طرفی کدها و توابعی در PHP وجود دارد که می توانند علاوه بر ارسال پارامترها به یک سرور (آدرس URL)، پاسخ آن را نیز دریافت کنند، امکان بالقوه ای که می تواند کاربردهای زیادی داشته باشد، از جمله مهمترین این توابع file_get_contents و cURL هستند که در ادامه آموزش به آنها خواهیم پرداخت.

تابع file_get_contents


از تابع file_get_contents در PHP برای خواند اطلاعات یک فایل یا آدرس URL استفاده می شود، به عنوان مثال:

<?php $homepage = file_get_contents('http://named.r98.ir/'); echo $homepage; ?>

کد بالا با ارسال یک درخواست به آدرس تعیین شده، پاسخ سرور (که صفحه اول سایت «وبگو» است) را به صورت رشته متنی دریافت می کند، اکنون اگر با دستور echo از متغیر فرضی homepage خروجی بگیریم، اطلاعات دریافت شده نمایش داده می شوند.
تابع file_get_contents  پنج آرگومان به شرح زیر می پذیرد:
- آرگومان اول (filename): نام (یا آدرس) فایل یا URL.
- آرگومان دوم (use_include_path): فراخوانی فایل از دایرکتوری include_path در تنظیمات PHP.
- آرگومان سوم (context): محتوایی که به همراه درخواست ارسال می شود، این محتوا باید توسط تابع  stream_context_create (و بر اساس استانداردهای HTTP context options) ساخته شود تا معتبر باشد، تنظیمات قابل اعمال در این قسمت عبارتند از: method، header، user_agent، content، proxy، request_fulluri، follow_location، max_redirects، protocol_version، timeout و ignore_errors؛ اطلاعات بیشتر:

http://php.net/manual/en/context.http.php

- آرگومان چهارم (offset): محل و خط شروع خواندن اطلاعات (این قابلیت به دلیل پشتیبانی نشدن برای فایل های لوکال و محدودیت هایش، چندان کاربردی نیست).
- آرگومان پنجم (maxlen): حداکثر کاراکتری که تابع خواهد خواند (در حالت پیش فرض تمام اطلاعات خوانده می شود).

تابع file_get_contents و متد POST


تابع file_get_contents علاوه بر دریافت پاسخ یک سرور، این توانایی را دارد که در چاچوب متد POST پارامترهایی نیز به سرور مقصد ارسال نماید، همان طور که در توضیح آرگومان های آن گفته شد، این پارامترها باید در چارچوب استاندارد HTTP بوده و پیش از ارسال توسط تابع stream_context_create معتبر شوند، به این ترتیب می توان نحوه کار فرم های HTML را به راحتی شبیه سازی کرد، ضمن اینکه علاوه بر ارسال پارامترها، می توان هم زمان نتیجه درخواست را نیز دریافت کرد، به مثال زیر توجه کنید.

<?php //مقادیری که باید ارسال شوند $data = http_build_query( array( 'var_1' => 'content_1', 'var_2' => 'content_2', 'var_3' => 'content_3' ) ); //تنظیم سربرگ های http $http = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $data ) ); //معتبر سازی با stream_context_create $context = stream_context_create($http); //ارسال درخواست و دریافت نتیجه $result = file_get_contents('http://www.example.com/submit/get.php', FALSE, $context); ?>

نکته: برای نمایش نتیجه دریافتی می توانید از یک دستور ساده echo استفاده کرده و از متغیر result خروجی بگیرید.

تابع cURL


یکی از قدرتمند ترین کتابخانه های مربوط به کار با پروتکل های وب در PHP، کتابخانه libcurl است که از نسخه 4.0.2 به آن افزوده شده است، البته این کتابخه به صورت پیش فرض در مفسر PHP وجود ندارد، اما به جهت کاربردی بودن، معمولا در اکثر سرورها به صورت پیش فرض فعال است، به طور ساده کتابخانه libcurl دربرگیرنده مجموعه توابعی است که کار با پروتکل های وب (از جمله HTTPS، HTTP، FTP و...) را به صورت حرفه ای و با قابلیت های زیاد ممکن می کند، به مثال زیر توجه کنید.

<?php $content = 'PHP cURL'; $curl = curl_init('http://www.example.com/submit/get.php'); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, 'var='.$content); curl_setopt($curl, CURLOPT_RETURNTRANSFER, FALSE); $result = curl_exec($curl); curl_close($curl); ?>

همان طور که در مثال بالا مشخص است، توابع مربوط به این کتابخانه با پیشوند _curl شروع می شوند، اما توضیح مختصری درباره برخی توابع این کتابخانه:
- تابع curl_init: با دریافت یک آدرس url، نشست cURL را آغاز می کند.
- تابع curl_setopt: تنظیم پارامترهای مورد نیاز برای اجرای صحیح یک نشست cURL.
- تابع curl_exec: اجرای یک نشست cURL.
- تابع curl_close: پایان یک نشست cURL.
- تابع curl_error: آخرین خطای رخ داده در نشست را نمایش می دهد.
- تابع curl_errno: شماره خطای برگردانده شده را نمایش می دهد.
البته توابع مربوط به این کتابخانه محدود به موارد گفته شده نمی شود:

http://www.php.net/manual/en/book.curl.php

به مثالی کاربردی توجه کنید.

<?php //تنظیم آدرس url $curl = curl_init('http://www.example.com/submit/get.php'); //تنظیم تعداد پارامترهای ارسالی curl_setopt($curl, CURLOPT_POST, 3); //تنظیم پارامترها curl_setopt($curl, CURLOPT_POSTFIELDS, 'var_1=content_1&var_2=content_2&var_3=content_3'); //تعین اینکه پاسخ سرور دریافت شود یا خیر curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); //اجرای نشست $result = curl_exec($curl); //پایان نشست curl_close($curl); ?>

توضیح:
- آدرس url مقصد را در قسمت curl_init مشخص کنید.
- تعداد پارامترهایی که با متد POST ارسال خواهند شد را در قسمت curl_setopt، تنظیمات مربوط به CURLOPT_POST مشخص کنید.
- در تنظیمات قسمت CURLOPT_POSTFIELDS، پارامترها و مقادیر آنها را تعیین کنید، این پارامترها در واقع نقش نام فیلد و مقادیر آنها نقش مقدار فیلد را در یک فرم HTML بازی می کنند.
- در قسمت CURLOPT_RETURNTRANSFER، مشخص می کنیم که آیا پاسخ سرور نیز پس از ارسال درخواست دریافت شود یا خیر، اگر مقدار TRUE باشد، پاسخ به صورت رشته متنی دریافت می شود و اگر FALSE باشد، پاسخ دریافت نمی شود.
- برای تکمیل یک نشست cURL باید حتما با تابع curl_exec آن را اجرا کنیم.
- در نهایت نیز با تابع curl_close، نشست cURL را خاتمه می دهیم.
نکته: برای نمایش نتیجه دریافتی می توانید از یک دستور ساده echo استفاده کرده و از متغیر result خروجی بگیرید.
Hadi بازدید : 0 یکشنبه 20 بهمن 1392 نظرات (0)

 

php-online-stats

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

چرا از آمارگیر بدون استفاده از دیتابیس استفاده کنیم؟


سوالی که ممکن است در نگاه اول به ذهن برسد این است که با وجود سیستم های آمارگیر موجود، چه لزومی دارد که از سیستم آمارگیر بدون دیتابیس استفاده کنیم؟
البته پاسخ این سوال روشن است، لزومی وجود ندارد!، بلکه به فراخور انتظاراتی که ما از یک سیستم نمایش آمار بازدیدها داریم، می توان از برنامه ای خاص و پیچیده و یا در عین حال کدی سبک و شخصی استفاده کرد، به طور مثال برخی صرفا تمایل دارند که آمار بازدیدها را به کاربران نشان دهند و برایشان اهمیتی ندارد که اطلاعات و تجزیه تحلیل های اضافه را نیز در اختیار داشته باشند، از طرفی ابزارهای رایگان و سیستم های وابسته به سایر سایت ها، اگرچه ممکن است خیلی مزایا داشته باشند، اما باید توجه نمود که اغلب اوقات موجب بروز مشکلاتی مانند از دسترس خارج شدن، کند شدن سرعت بارگذاری صفحات، وجود لینک های بعضا غیر استاندارد به سایت سرویس دهنده و... نیز می شوند، از طرفی سیستم های شخصی مبتنی بر دیتابیس نیز در عین مزایایی که دارند، ما را با محدودیت هایی مواجه می کنند، از جمله اینکه الزاما باید دیتابیسی در اختیار داشته باشیم، میزان فضای کافی برای ذخیره اطلاعات موجود باشد، برنامه مدیریت آن را بنویسیم و لذا به سطح بالایی از دانش برنامه نویسی نیازمندیم و... لذا ملاحظه می کنید که هر روشی ممکن است مزایا و در عین حال معایب خاص خود را داشته باشد و این شما و هدفتان است که تعیین می کند از چه شیوه ای استفاده کنید.

کد PHP برای محاسبه و نمایش آمار بازدیدها


برای محاسبه و نمایش آمار بازدیدها می توانید از کد PHP زیر استفاده کنید، این کد قادر به محاسبه و نمایش آمار بازدیدهای امروز، دیروز، بازدید کل و نمایش افراد آنلاین است، برای قسمت افراد آنلاین از IP کاربران جهت تفکیک آنها استفاده شده و به صورت پیش فرض بعد از هر بار بارگذاری صفحات سایت، آن کاربر تا 5 دقیقه آنلاین محسوب می شود و با رفرش یا بارگذاری صفحات دیگر، این زمان به صورت هوشمندانه به روز شده و از نو محاسبه می گردد، از جمله سایر امکانات این ابزار به ظاهر کوچک، قابلیت حذف خودکار IP کاربرانی است که دیگر آنلاین نیستند، این کار از اضافه شدن بی مورد حجم فایل برنامه جلوگیری می کند.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>وبگو | نمایش آمار بازدیدها بدون دیتابیس</title> <!-- http://webgoo.ir --> <style type="text/css"> body{ font-family:Tahoma, Geneva, sans-serif; font-size:12px; direction:rtl; } .stats{ display:block; margin-left:auto; margin-right:auto; width:150px; height:auto; border:1px solid #CCC; padding:4px; line-height:20px; } </style> </head> <body> <?php //اختلاف زمانی سرور $time_zone = '12600'; //تاریخ امروز $today = date("Y-m-d", time()+$time_zone); //تاریخ دیروز $yesterday = date("Y-m-d", time()-86400+$time_zone); //آدرس فایل $file_src = 'visit-stats.txt'; chmod($file_src, 0755); //خواندن فایل $read_file = file_get_contents($file_src); //اگر فایل خالی نبود if (filesize($file_src) > 0 || $read_file != ''){ $split_file = explode('|', $read_file); //print_r($split_file); $modify = $split_file[3]; //اگر تاریخ آخرین ویرایش برابر تاریخ امروز نبود if($modify != $today){ $today_visit = 1; $yesterday_visit = $split_file[0]; $total_visit = $split_file[2] + 1; $last_modify = $today; } //اگر تاریخ آخرین ویرایش برابر امروز بود else{ $today_visit = $split_file[0] + 1; $yesterday_visit = $split_file[1]; $total_visit = $split_file[2] + 1; $last_modify = $today; } } //اگر فایل خالی بود else{ $today_visit = 1; $yesterday_visit = 0; $total_visit = 1; $last_modify = $today; } //نوشتن آمار جدید در فایل $file_src_handle = fopen($file_src, 'w+'); $visit_data = $today_visit.'|'.$yesterday_visit.'|'.$total_visit.'|'.$last_modify; fwrite($file_src_handle, $visit_data); fclose($file_src_handle); //محاسبه تعداد کاربران آنلاین $config_array = array( 'user_time' => date("YmdHis", time()+$time_zone), 'user_ip' => $_SERVER['REMOTE_ADDR'], 'file_name' => '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); //حذف مقادیر خالی foreach($online_file as $key=> $value){ if(is_null($value) || $value == ''){ unset($online_file[$key]); } } //حذف آی پی های قدیمی و آی پی فعلی 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]); } if($user_ip_time[0] == $config_array['user_ip']){ unset($online_file[$key]); } } //محاسبه تعداد افراد آنلاین $online = 1; foreach($online_file as $online_users){ $user_ip_time = explode("|", $online_users); if($user_ip_time[1] >= date("YmdHis", time()+$time_zone - 300)){ $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); ////////////////* http://webgoo.ir */////////////// //گرفتن خروجی echo "<div class=\"stats\"> &raquo; بازدید امروز: $today_visit <br /> &raquo; بازدید دیروز: $yesterday_visit <br /> &raquo; افراد آنلاین: $online <br /> &raquo; بازدید کل: $total_visit </div>"; ?> </body> </html>

توضیح:
- قبل از هر چیز دو فایل با نام های visit-stats.txt و visit-online.txt در کنار فایل اصلی برنامه ایجاد کنید، از این دو فایل برای ذخیره و نمایش اطلاعات مربوط به بازدیدها و افراد آنلاین استفاده خواهیم کرد.
- سپس در ابتدای کد، اختلاف زمان محلی و زمان سرور خود را مشخص می کنیم، به طور مثال اگر زمان سرور بر روی GMT تنظیم شده باشد، اختلاف محلی برای ایران در حالت معمول معادل 3:30 ساعت و به عبارتی 12600 ثانیه است (60*60 برابر 3600 ثانیه برای یک ساعت).
- در گام بعد با تابع date و time تاریخ امروز را به صورت میلادی به دست می آوریم، سپس از همین روش استفاده کرده و زمان فعلی را از 86400 ثانیه که معادل 24 ساعت است (3600*24) کم می کنیم تا تاریخ دیروز نیز مشخص شود.
- در گام بعدی فایل مورد نظر جهت ذخیره و بازیابی آمار بازدیدها را تعیین کرده و با تابع file_get_contents اطلاعات آن را می خوانیم، همچنین برای اطمینان از قابل ویرایش بودن فایل، با تابع chmod مجوزهای ویرایش (permission) را بر روی عدد 0755 تنظیم می کنیم.
- اگر حجم فایل بیشتر از 0 بایت بود یا اینکه فایل خالی نبود، یعنی قبلا آماری در آن ثبت شده است، در این صورت، آمار باید به صورت نمونه زیر ثبت شده باشد:

24|92|124|2012-10-26

در اینجا عدد اول تعداد بازدیدهای امروز، عدد دوم بازدیدهای دیروز، عدد سوم بازدید کل و عبارت آخر تاریخ آخرین ویرایش فایل مزبور است، همان طور که ملاحظه می کنید از یک جدا کننده با علامت (|) استفاده کرده ایم، این جداکننده وقتی که با تابع explode کار می کنیم لازم است و می توان با آن بخش های مختلف را از هم تفکیک و تجزیه کرد و نتیجه را به صورت یک آرایه درآورد.
- زمانی که اطلاعات به آرایه تبدیل می شوند، می توان به مقادیر کلیدهای آن دسترسی داشت، به طور مثال در کد بالا اگر با print_r از متغیر split_file$ خروجی بگیریم، نتیجه به شکل نمونه زیر خواهد بود.

Array ( [0] => 345 [1] => 431 [2] => 17345 [3] => 2012-10-26 )

ملاحظه می کنید که شمارش کلیدها از صفر شروع شده و تا 3 ادامه پیدا می کند، به طور مثال کلید 3 تاریخ آخرین ویرایش فایل را در خود دارد (برای کسب اطلاعات بیشتر در این خصوص به بخش آرایه ها در PHP مراجعه کنید).
- در گام بعدی بررسی می کنیم تا ببینیم آیا تاریخ آخرین ویرایش فایل برابر تاریخ امروز است یا خیر، اگر این طور باشد بازدید امروز و بازدید کل باید افزایش یابند، اما اگر تاریخ امروز با تاریخ آخرین ویرایش تفاوت کند، پس محاسبه بازدیدها وارد یک روز جدید شده و آمار فعلی باید به عنوان آمار دیروز در نظر گرفته شوند و بازدید امروز نیز از نو شروع شده و نهایتا بازدید کل نیز افزایش یابد (درک صحیح عملکرد اسکریپت با کمی تامل و آشنایی با مبحث آرایه ها آسان می گردد).
- اما اگر حجم فایل بیش از 0 بایت نبود یا اینکه فایل خالی باشد، پس اولین باری است که اطلاعات در آن ذخیره می شود، لذا آمار امروز برابر 1، آمار دیروز برابر 0 و آمار کل برابر با 1 خواهد بود.
- در نهایت نیز با توابع fopen و متد +w و همچنین fwrite و fclose فایل را بازکرده و اطلاعات جدید را در آن می نویسیم، در اینجا اگر در برخی سرورها با وجود استفاده از تابع chmod با خطای سطح دسترسی پائین برای ویرایش فایل مواجه شدید، باید به کنترل پنل هاست خود رفته و به صورت دستی مجوزهای ویرایش (permission) را بر روی عدد 755 تنظیم کنید.
- در قسمت دوم اسکریپت، تعداد افراد آنلاین را محاسبه می کنیم، برای این کار ابتدا در آرایه config_array$ زمان فعلی، IP کاربر و آدرس فایل را مشخص می کنیم (مقادیر آرایه به صورت کلیدهای 0 تا 2 در دسترس هستند).
- در اینجا از دو علامت جدا کننده استفاده می کنیم، علامت (\r\n) که برای ایجاد یک خط جدید و آرایش ردیفی اطلاعات هر کاربر کاربرد دارد و علامت (|) که بین IP و زمان آن تفکیک ایجاد می کند، به فرض:

127.0.0.1|20121026134434 127.0.0.2|20121026134324 127.0.0.3|20121026134233

نکته: علامت (\r\n) قابل روئیت نیست، ولی باعث ایجاد خط جدید می شود و در فایل وجود دارد.
- ابتدا در یک حلقه foreach کلیدهایی که مقادیر خالی دارند را از آرایه حذف می کنیم (با استفاده از unset)، در واقع این کار برای جلوگیری از محاسبه آخرین خط در تعداد افراد آنلاین است (آخرین خط صرفا علامت (\r\n) را در خود دارد و لذا مقادیر آن خالی است، برای دیدن جزئیات، فایل visit-online.txt را با یک ویرایشگر (مانند ++Notepad) که شماره خطوط را نشان دهد باز کنید، خواهید دید که خط آخر مقادیری ندارد).
- در حلقه foreach بعدی IP و زمان کاربرانی که از حالت آنلاین خارج شده اند (یعنی بیش از حداکثر زمان تعیین شده غیرفعال بوده اند) را حذف می کنیم، علاوه بر این اطلاعات قبلی کاربر فعلی را نیز از لیست آرایه حذف می کنیم.
- اکنون تعداد IP های باقی مانده را محاسبه کرده و به همراه کاربر فعلی در متغیر online$ مقداردهی می کنیم.
- سپس آمار کاربرانی که آنلاین هستند و کاربر فعلی را به طور مجدد در فایل visit-online.txt ذخیره می کنیم، این کار برای جلوگیری از افزایش بیش از حد حجم فایل مفید است (اگر این کار را نکنیم، اطلاعات قدیمی بی جهت در فایل ما ذخیره شده و حجم فایل به مرور و به طور مداوم افزایش می یابد).
- در نهایت نیز متغیرهای اصلی برنامه را به خروجی می دهیم، برای این کار از دستور echo استفاده کرده ایم.

تعداد صفحات : 134

درباره ما
ارایه جدیدترین آموزش ها ترفندها نرم افزارها و...مربوط به سایر شبکه های اجتماعی مانند نامد نیمباز واتس اپ موزات و...نرم افزارهای کاربردی ،مدیریتی ،گرافیکی ،مهندسی،برنامه نویسی و...،پیامکسرا ،مرکز تصاویر ،قالب سایت و ویلاگ ،اخبار روز جهان و ایران ،افزایش بازدید سایت و وبلاگ,رتبه الکسا
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • نویسندگان
    آرشیو
    نظرسنجی
    به سایت ما چه امتیازی میدهید؟
    آپلودرها


    آمار سایت
  • کل مطالب : 402
  • کل نظرات : 0
  • افراد آنلاین : 2
  • تعداد اعضا : 74
  • آی پی امروز : 33
  • آی پی دیروز : 47
  • بازدید امروز : 55
  • باردید دیروز : 62
  • گوگل امروز : 4
  • گوگل دیروز : 4
  • بازدید هفته : 257
  • بازدید ماه : 814
  • بازدید سال : 7,793
  • بازدید کلی : 93,478