2011-07-28 15 views
12

私はおそらくサーバへの完全なアクセス権を持っていればこれを行う方法を見つけ出すだろうが、問題はそれだけで私を残すホスティングサービスだということだ。FTPアクセス定期的にPHPスクリプトを実行する最も良い方法は?

私は時代遅れ/壊れたコンテンツをチェックするために定期的にPHPスクリプトを実行し、集計新しいコンテンツ、使用していないなどのファイルを削除したいと思います、しかし、スクリプトが原因の凝集(実行に60秒までを取ることができますコンテンツ)を更新してから1時間後に初めてウェブサイトにアクセスしたユーザーのリクエストを処理している間に、それを実行するだけの気がします:P

私の家庭のPCを24時間365日オプション。

+3

Googleは、サービスの多くは、これを提供しています。 – Wrikken

+2

HTTP経由でスクリプトを実行する場合は、実行タイムアウトに注意してください。 'set_time_limit()'を使ってPHPが通常より長くスクリプトを動かせるようにすることができますが、Webサーバ(Apache)には独自のプロセス時間制限があり、変更できません。あなたのホストにcronスクリプトを設定させるかどうか尋ねてください。 – Phil

+1

理論上、2回の訪問に頼ってウェブホストの厳しい制限を回避することができます。基本的には私のアプローチを使い、長いスクリプトの2番目の部分を実行して*秒の時間をユーザーにリダイレクトします。実行時間を半分に分割し、ユーザーを2回リダイレクトします。はい、貧弱なユーザーです。ハハ。 –

答えて

14

オンラインのcronサービスを使用すると、基本的にcronアクセスのようにふりをすることができます。

あなたは

Free Cron Online Website

を実行し、そのファイルをx分ごとに実行するためにあなたの自由なオンラインのcronを設定したい内容でPHPファイルを作成します。

+1

うわー、それは素晴らしいサイトです。これは間違いなく私を始めさせるでしょう! – CookieMonster

+1

うん、素晴らしいサイト、ブックマーク。 :)私たちにそれについて教えてくれてありがとう:) –

0

は、なぜあなたはここを見てみましょう

crontab 

を使用しないでください:

たときに最初にこれが正しいアプローチであるが、私はただ、スクリプトをトリガするために使用した場合
http://en.wikipedia.org/wiki/Cron 
+2

OPは、特にFTP以外のサーバーへのアクセスが他にないと言っています。 –

+1

また、それは 'crontab'です。 –

+0

そして、ホスティングがFTPアクセスのみを提供している場合。彼らはスクリプトが60秒以上実行できるようにしますか? – glarkou

4

わかりませんユーザーはサイトを訪問し、ブラウザにページを更新するために<meta http-equiv="refresh"...をユーザーに送信します。オリジナルのPHPスクリプトは引き続きサーバー上で実行されますが、ユーザーはそれをもう見られません。

基本的には、のようなもの:

if(check if the user is the first visitor today) { 
    set_time_limit(0); 
    echo "<meta http-equiv='refresh' content='1;url=..." />"; // put your site baseurl in here 

    ... run your scripts here 
} 

ジャストアイデア。動作しない可能性があります。ただ試してみてください。

+0

ねえ、それは良い考えのように聞こえる。私はヘッダー( "場所:..")を使用してユーザーをリダイレクトすると仮定します。 (ユーザーがリダイレクトされてもスクリプトを続行します)早くこの方法を試してみます。 – CookieMonster

+1

はい、ヘッダーも大丈夫です。実際には、ヘッダーを最初に送信してからメタタグを送信してください(それ以降はエラーが発生します)ので、ユーザーがリダイレクトされていることを確認してください。何らかの理由で、一部のブラウザでヘッダー(場所)が無視される場合があるため、メタタグによって確実にリダイレクトされます。私の習慣。これはあなたのために働くことを望みます! :) –

+0

大丈夫、素晴らしいもの!両方の方法を試してみて、どれがうまくいくかを見ていきます:)ありがとう – CookieMonster

0

あなたのホスティングプロバイダがあなたにFTPアクセス以外のものを与えていない場合は、別のマシンからの定期的なリクエストをスケジュールしたくない場合、何もできません。より良いホスティングアカウントを取得する必要があります。好ましくはcronを使用できるアカウントです。

+1

クライアント/ビジターに依頼して、クライアントをシフトアウトします。上記の私の方法を参照してください。 :) –

関連する問題