以下のコードでは、私のWebサイトクラスのget_status()メソッドは、必要に応じてtrueまたはfalseではなく1を返します。誰か教えてもらえますか?私のクラスではおそらく間違いだと思います。このコード行がget_status()メソッド内で適切に実行されているかどうかはわかりません。
$ httpcode = $ this-> get_httpcode();
$ siteUpをエコーすると、URLをhttp://www.google.comまたはhttp://www.dsfdsfsdsdfsdfsdf.comのどちらとして指定しても、常に1になります。
私はオブジェクト指向のphpにかなり慣れていません。これは自分自身にクラスを教えるのは初めてであり、これは私がoopを学ぶために構築している例です。Webサイトのステータスを確認し、httpcodeに基づいてアップかダウンかを判断するように設計されています。
これが機能しない理由についてのヒントは、大いに受け取られます。前もって感謝します!
class website {
protected $url;
function __construct($url) {
$this->url = $url;
}
public function get_url() {
return $this->url;
}
public function get_httpcode() {
//get the http status code
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$this->url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
$page=curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpcode;
}
public function get_status() {
$httpcode = $this->get_httpcode();
if ($httpcode>=200 && $httpcode<400) {
$siteUp = true;
} else {
$siteUp = false;
}
return $siteUp;
}
}
// create an instance of the website class and pass the url
$website = new website("http://www.google.com");
$url = $website->get_url();
$httpcode = $website->get_httpcode();
$siteUp = $website->get_status();
echo "site up is set to: " . $siteUp;