Neden print "Hata!" Takip etmez ama sadece 'failed to open stream ...' uyarısı yazdırır?
try {
file_get_contents('www.invalid-url.com');
} catch (Exception $e) {
echo 'Error!';
}
file_get_contents bir istisna, ama başarısız olursa FALSE döndürür. file_get_contents son derece ilkel bir fonksiyonudur. Daha gelişmiş geribildirim istiyorsanız, kullanabileceğiniz cURL.
Örneğin böyle bir şey:
$curl = curl_init('your URL here');
// Return the output to a string instead of the screen with CURLOPT_RETURNTRANSFER
curl_setopt($pCurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($pCurl, CURLOPT_TIMEOUT, 10);
$content = curl_exec($curl);
$info = curl_getinfo($curl);
if($info['http_code'] === 200)
{
return $content;
}
PHP varsayılan ancak bir hata mesajı mekanizması ile özel durumlar kullanmak değildir. İstisnaları istiyorsanız http://php.net/manual/en/class.errorexception.php gibi bir özel hata işleyicisi kullanabilirsiniz
Daha PHP'ish yolu kapatma hata mesajı olabilir ve dönüş kodu kontrol. Kapanıyor error_reporting(0);
veya ini_set('display_errors', false);
veya @
operatörünü kullanarak küresel yapılabilir.
<?php
if (!@file_get_contents(....)) {
echo "ERROR";
}
?>