If you want to fetch the error message, make sure you fetch it before you close the current cURL session or the error message will be reset to an empty string.
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
curl_error — Belirtilen oturumdaki son hatayı içeren bir dizge döndürür
Belirtilen oturumdaki son hataya ilişkin bir dizge döndürür.
Bir hata yoksa boş bir dizge, bir hata varsa hata dizgesini döndürür.
Sürüm: | Açıklama |
---|---|
8.0.0 | tanıtıcı için artık bir
CurlHandle örneği bekleniyor; evvelce,
resource türünde bir değer beklenirdi. |
Örnek 1 - curl_error() örneği
<?php
// Olmayan bir yer için bir cURL tanıtıcısı oluşturalım
$ct = curl_init('http://404.php.net/');
curl_setopt($ct, CURLOPT_RETURNTRANSFER, true);
if(curl_exec($ct) === false)
{
echo 'Curl hatası: ' . curl_error($ct);
}
else
{
echo 'İşlem hatasız tamamlandı';
}
// Tanıtıcıyı kapatalım
curl_close($ct);
?>
If you want to fetch the error message, make sure you fetch it before you close the current cURL session or the error message will be reset to an empty string.
If you're using curl_multi and there's an error, curl_error() will remain empty until you've called curl_multi_info_read(). That function "pumps" the information inside the curl libraries to the point where curl_error() will return a useful string.
This should really be added to the documentation, because it's not at all obvious.
For a 404 response to actually trigger an error as the example seems to be trying to demonstrate the following option should be set:
curl_setopt($ch,CURLOPT_FAILONERROR,true);
As per http://curl.haxx.se/libcurl/c/libcurl-errors.html
CURLE_HTTP_RETURNED_ERROR (22)
This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= 400. (This error code was formerly known as CURLE_HTTP_NOT_FOUND.)
curl_error is not a textual representation of curl_errno.
It's an actual error *message*.
If you want textual representation of error *code*, look for curl_strerror.