-2

//このスクリプトを繰り返し実行する必要があり、時間間隔はユーザーが設定できます

// インターネット接続の確認

if (!$sock = fsockopen("www.google.com", 80, $errno, $errstr,20))
    {
?>
<script type="text/javascript">

alert("Connection problem");

</script>

<?php       
    }

// データベースからデータを取得し、サイトがダウンしていることを確認します

else
    {
    for($i=0;$i<count($res);$i++)
        {
        $fp=fsockopen($res[$i]['url'],80,$errno,$errstr,30);
        if($fp==false)
            {
 ?>
 <script type="text/javascript">

 alert("Website is down");

 </script>

 <?php

// データベースへのデータ書き込みとメール送信

mail($email[0]['email_id'],"website is down",$res[$i]['url']." is down");
    $inputs=array('website_id'=>$res[$i['website_id'],
    'date'=>date("Y-m-d H:i:s"),'reason'=>"website down");
$obj3->addLog($inputs);
         }
    }
}
sleep(300);
}
4

3 に答える 3

3

サービスを見てくださいcron。誰かがすでにここでそれを説明しています。

Webページの形式のままにしておき、自動的に再読み込みする場合は、JavaScript関数を確認してくださいsetTimeout

于 2012-06-11T05:55:16.483 に答える
1

cronの問題はこれ"and the time interval can be set by a user"です。

cron30秒ごとまたはN秒ごとにスクリプトを実行するような方法を使用できます。これは、スクリプトを実行するための最小の粒度です。

ここで、ユーザーがそのスクリプトを30分ごとに実行する必要があると設定した場合、スクリプトで最初に行うことは、スクリプトを続行する必要があるかどうか、つまり最後の実行がそのユーザーが設定した30分より前であったかどうかを確認することです。スクリプトの疑似は次のようになります。

1) load last run from DB, compare it with interval - do we need to proceed, if not exit
2) do what script needs to do
3) save to the DB last run time

もちろん、これはすべて、ユーザーが実行間隔を動的に変更できる必要があり、 cronに触れたくない場合にのみ必要です。

于 2012-06-11T06:02:19.490 に答える
0

これを行うにはいくつかの方法があります。まず、cronジョブを使用して、設定した時間にスクリプトを自動的に実行できます。PHPスクリプトはサーバー上で直接実行され、ブラウザには何も表示できないため、JavaScriptは機能しません。

スクリプトが画面上のデータを報告できるように、このすべてを実行している間、ユーザーにページを開いてもらいたい場合は、URLの時刻をGETパラメーターとして設定し、を使用mypage.php?refreshTime=1800してそれを読み取り$_GET['refreshTime']、次の行を使用します。更新時間を設定します。

<meta http-equiv="refresh" content="$refreshTime">

これにより、$refreshTime数秒後にページがリロードされます。PHPは、ページをロードするときと同じように、更新のたびに実行する必要があります。

于 2012-06-11T05:56:46.187 に答える