私は自分のウェブサイトにサーバーステータスページを作成しようとしています。私は以下の機能を使ってウェブサイトがライブかどうかを確認しています。しかし、私が複数の検索をしようとすると、応答は最初の応答の後には常にDOWN
になります。この機能を同じページで2回使用すると問題が発生します。
ログイン機能
function Visit($url){
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_SSLVERSION,3);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
$page=curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpcode>=200 && $httpcode<300) return true;
else return false;
}
のindex.php
if (Visit("http://twitter.com")){
echo "OK";
}else{
echo "DOWN";
}
if (Visit("http://google.com")){
echo "OK";
}else{
echo "DOWN";
}
エラーログ
[30-Jun-2016 12:11:10 UTC] PHP Warning: fread() expects parameter 1 to be resource, boolean given in /public_html/blog/server-status.php on line 40
[30-Jun-2016 12:11:10 UTC] PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /public_html/blog/server-status.php on line 41
40と41S t行は;
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
上記スクリプトを実行する際に所定の応答は、Googleが最大であってもOK DOWN
あります。私は他のリンクを試してみて、すべて同じエラーを生成します。
エラーが表示されますか?エラーもありますか?戻ってくるコードを確認しましたか?あなたはこれまでこれを解決するために何を試みましたか? – Styphon
申し訳ありません。エラーログを編集したばかりです。最新のものではないようですが、error_logファイルの最新のログを取得したので、エラーログが関連しているかどうかはわかりません。 –
[** PHP経由でURLが存在するかどうかを確認するにはどうすればいいですか?**](http://stackoverflow.com/questions/2280394/how-can-i-check-if-a-url-exists -via-php) – FirstOne