2011-12-30 15 views
0

"cronの代替品"であるphpコードをいくつか見つけました。私はPHPの完全な知識を持っていますので、このコードは私のサイトで使えますか?彼女のスニペット:cronに代わるPHPコード

<?php 

if (($last + $interval) >= time()) { 
// execute some script(s) 
} 

?> 

私は電子メールを送信するスクリプトを遅らせようとしています。メールのスクリプトは次のとおりです。

<?php  
if(isset($_POST['email'])) 
{ 

$headers = "From: Memory Jet <[email protected]>\r\n"; 


$to_visitor = $_POST["email"]; 
$common_data = $_POST["message"]; 
mail($to_visitor, "Your Memory", $common_data, $headers); 

} ?> 
+4

私はあなたがcronの代わりにそれをどのように呼び出すことができないのか分かりません。あなたの達成しようとしていることを説明するのはどうですか?単純な遅延のためにsleep()を使用することができます –

+0

いいえ、それは(単独で)動作しませんでしたが、これはあなたの本当の質問ではないと思います。 – KingCrunch

+0

これは大きな遅れで、睡眠はうまくいかないでしょう。 –

答えて

2

:ここ

は、あなたがこれを行うために使用できる方法のカップルを持つサイトです最初の部分は次のようになります://スクリプトを実行します。また変数$ timeと$ intervalを定義する必要があります

これは言いましたが、私はこれがcronの実際の代替手段ではないという他のポスターに同意します。 CronはWindowsでスケジュールされたタスクとして知っているかもしれないものの* nixバージョンです。基本的には、スクリプトを作成し、cronを使用してスケジュールします(後で人の介入なしに)。一方、あなたのポストで提供されている「代替」は、PHPスクリプトを手動で(インターネットなどを介して)アクセスすることによってのみ動作します。

1

Cronは、たとえば、毎日特定の時刻にメールを送信するために使用されます。これを行うには、PHPアプリケーションの外で何らかのスクリプトを作成し、実際にCRONを使用してスクリプトをスケジュールすることができます。あなたが提供されたコードを使用したい場合は、あなたが全体の2番目のコードスニペット(マイナスタグ)を挿入する必要がありますhttp://www.thegeekstuff.com/2011/07/php-cron-job/

2

PHPは "cron"の代わりに、あなたのホストにスクリプトとして保存し、一度実行します。これは、内部処理に時間がかかる場合は、それが同様に時間がかかりますので、彼らが実行されるのが長すぎるスクリプトを妨げないように、バックグラウンドでタスクをフォーク、一度各秒自分自身を呼び出します。

<?php 
header("X-PHP-CRON-STATUS: failure."); 
isset($_SERVER["HTTPS"]) || die('failure.'); 
ignore_user_abort(true); 
set_time_limit(0); 
header("Content-Length: 8"); 
header("Connection: close"); 
header("X-PHP-CRON-STATUS: started.", 1); 
echo 'started.'; 
flush(); 

/* run cron jobs in background/HTTP "background" script like this one */ 


$each = 1; /* second(s) */ 
$sofar = microtime(1) - $_SERVER['REQUEST_TIME']; 
if (0 < ($wait = $each - $sofar)) 
{ 
    usleep($wait * 1000000); 
} 

$uri = 'http' . ($_SERVER["HTTPS"] ? 's' : '') . '://' . $_SERVER["SERVER_NAME"]; 
!$_SERVER["SERVER_PORT"] == "80" && $uri .= ':'.$_SERVER["SERVER_PORT"]; 
$uri .= $_SERVER["REQUEST_URI"]; 
file_get_contents($uri); 

をこのようなスクリプトは非常に壊れやすいので、実際のcronを得るのが得策です、それは価値があります。手直しのために、大丈夫です。

関連する問題