PDA

View Full Version : سوال: آگاهی از طریق ایمیل اگر صفحه مورد نظر ما تغییر کرد !



SilverLearn
سه شنبه 27 فروردین 1392, 16:07 عصر
سلام دوستان

من صفحه ای دارم که یک نوشته به صورت "HELLO" در آن وجود دارد حالا می خوام برنامه ای بنویسم که اگر این صفحه از سمت ادمینش تغییر داده شد و این کلمه تغییر کرد من رو با ایمیل آگاه کنه ...
و نیازی به رفرش صفحه از طرف من نباشه

کسی راهی به نظرش میرسه ؟

dousti_design
سه شنبه 27 فروردین 1392, 16:10 عصر
از کرون جاب استفاده کنید

SilverLearn
سه شنبه 27 فروردین 1392, 16:12 عصر
این صفحه توی هاست من نیستا
مثلا این پیج رو می خوام مانیتور کنم
www.google.com/silver.php

SilverLearn
سه شنبه 27 فروردین 1392, 16:51 عصر
آیا کسی نظری نداره !!!

Unique
چهارشنبه 28 فروردین 1392, 01:29 صبح
خودتون دارین میگین مانیتور و در ضمن دست شما نیست ! باید vps داشته باشین و یک برنامه بنویسین (php نه ها ،‌مثلا با c) که در بازه های زمانی سایت را چک کنه و در صورت تغییر به شما خبر بده ! راه دیگه ای وجود نداره ! اگه داشت گوگل بدون نیاز با بازدید مجدد crawler هاش میتونست اطلاعات قدیمی سایت ها را به روز کنه !

MMSHFE
چهارشنبه 28 فروردین 1392, 08:27 صبح
یک راه وجود داره و اون اینکه توی اسکریپتتون محتوای قبلی فایل رو در یک فایل روی هاست خودتون یا دیتابیس ذخیره کنید و هربار اسکریپت اجرا میشه، با cURL یا file_get_contents و... محتوای فایل رو بخونید و اگه با محتوای قبلی فرق داشت، محتوای جدید رو جایگزین کنید و یک ایمیل هم بفرستین. بعد این اسکریپت رو روی هاست خودتون با Cron Jobs تنظیم کنید که در فواصل زمانی مشخص اجرا بشه. البته بدون Cron Jobs هم میتونید اینکار رو انجام بدین ولی با Cron راحتتر و مطمئنتره.
مثالی از راه بدون Cron :


<?php
ignore_user_abort(true);
set_time_limit(0);
while(true) {
$old = '';
if(file_exists('oldcontents.txt')) {
$old = file_get_contents('oldcontents.txt');
}
$new = file_get_contents('http://www.google.com/silver.php');
if($old != $new) {
file_put_contents('oldcontents.txt');
// Put your e-mail script here
}
sleep(5);
}
?>

همون مثال با استفاده از Cron :


<?php
ignore_user_abort(true);
set_time_limit(0);
$old = '';
if(file_exists('oldcontents.txt')) {
$old = file_get_contents('oldcontents.txt');
}
$new = file_get_contents('http://www.google.com/silver.php');
if($old != $new) {
file_put_contents('oldcontents.txt');
// Put your e-mail script here
}
?>

میبینید که حلقه while حذف شده و بجاش حالا باید این اسکریپت رو با Cron طوری تنظیم کنید که هر 5 ثانیه یکبار اجرا بشه.
از این جهت میگم استفاده از Cron مطمئنتره چون در برخی از هاستهای اشتراکی در زمان مشخصی (مثلاً 1 بامداد) تمام Processهای PHP بطور خودکار Kill میشن و درنتیجه اسکریپت شما از کار میفته ولی اگه با Cron کار کرده باشین، دوباره 5 ثانیه بعد صدا زده میشه.

Unique
چهارشنبه 28 فروردین 1392, 18:52 عصر
روش جناب شهرکی درسته و کار میکنه هم while و هم cron job ! اما این تغییرات آنی نیستند ! در حالت while میشه اما قابل اتکا نیست ! cron job هم معمولا محدودیت هایی بعضی سرور ها دارند ! بعضی هم اصلا تا نبینند چی را میخواین cron کنید و توی چه بازه زمانی براتون cron را ایجاد نمیکنند ! باز هم به نظر من استفاده از یک برنامه و timer و چک کردن محتوا مثلا با همون curl یا کتابخونه های دیگه بهتره ! با جاوا هم میشه چنین برنامه هایی نوشت ! اما آخرش vps میخواین.