Birçok link kontrol yapılarında linkin bağlı olduğu siteye ulaşılıyorsa sayfanın çalıştığı kabul ediliyor. Ancak siteye ulaşılsa bile sayfa 404, 403 vs. hatalar verebilir. Bizim kodumuzda hem siteye ulaşılıp/ulaşılmadığını hemde HTTP 200 kodunu (yani sayfa çalışıyor demek) kontrol edeceğiz. Detaylı anlatımı kodlar üzerinden yapacağım.
<?php
// Kontrol edilecek link yazıyoruz.
$url = "http://milliyet.com.tr";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_HEADER, false);
// Post isteği gönderiyoruz.
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
// Rastgele bir değer gönderiyoruz.
curl_setopt($ch, CURLOPT_POSTFIELDS, "default=1");
// Eğer 301 yönlendirmesi varsa takip et
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Sayfadan dönen içerik. eğer yazı vs. çekecekseniz bu değişkenden alabilirsiniz.
$curl_output = curl_exec($ch);
// Http sonucunu alıyoruz.
$curl_http = curl_getinfo($ch);
// Curl bağlantısının başarılı olup/olmadığı bu değişkene aktarılıyor.
$curl_err = curl_errno($ch);
// Eğer bağlantıda problem yoksa
if(!$curl_err){
// Eğer sayfadan HTTP 200 kodu dönmüş ise. Yani 404, 403 vs. kodu dönmemiş ise
if($curl_http["http_code"] == 200){
echo "Siteye ulaşıldı ve sayfa çalışıyor.";
}else{
echo "Siteye ulaşıldı ancak sayfa çalışmıyor.";
echo "<br>";
echo "<pre>";
print_r($curl_http);
echo "</pre>";
}
}else{
echo "Siteye ulaşılamadı.";
}
?>