Как вывести ошибки curl php

curl_errno

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

curl_errno — Возвращает код последней ошибки

Описание

Возвращает код ошибки последней операции cURL.

Список параметров

Дескриптор cURL, полученный из curl_init() .

Возвращаемые значения

Возвращает номер ошибки или 0 (ноль), если ошибки не произошло.

Список изменений

Версия Описание
8.0.0 handle теперь ожидает экземпляр CurlHandle ; раньше, ожидался ресурс ( resource ).

Примеры

Пример #1 Пример использования curl_errno()

// Создаём дескриптор curl к несуществующему адресу
$ch = curl_init ( ‘http://404.php.net/’ );

// Запускаем
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true );
curl_exec ( $ch );

// Проверяем наличие ошибки
if( curl_errno ( $ch ))
<
echo ‘Ошибка curl: ‘ . curl_error ( $ch );
>

// Закрываем дескриптор
curl_close ( $ch );
?>

Смотрите также

  • curl_error() — Возвращает строку с описанием последней ошибки текущего сеанса
  • » Коды ошибок cURL

User Contributed Notes 9 notes

if someone need more information about curl errors
=array(
[ 1 ] => ‘CURLE_UNSUPPORTED_PROTOCOL’ ,
[ 2 ] => ‘CURLE_FAILED_INIT’ ,
[ 3 ] => ‘CURLE_URL_MALFORMAT’ ,
[ 4 ] => ‘CURLE_URL_MALFORMAT_USER’ ,
[ 5 ] => ‘CURLE_COULDNT_RESOLVE_PROXY’ ,
[ 6 ] => ‘CURLE_COULDNT_RESOLVE_HOST’ ,
[ 7 ] => ‘CURLE_COULDNT_CONNECT’ ,
[ 8 ] => ‘CURLE_FTP_WEIRD_SERVER_REPLY’ ,
[ 9 ] => ‘CURLE_REMOTE_ACCESS_DENIED’ ,
[ 11 ] => ‘CURLE_FTP_WEIRD_PASS_REPLY’ ,
[ 13 ] => ‘CURLE_FTP_WEIRD_PASV_REPLY’ ,
[ 14 ]=> ‘CURLE_FTP_WEIRD_227_FORMAT’ ,
[ 15 ] => ‘CURLE_FTP_CANT_GET_HOST’ ,
[ 17 ] => ‘CURLE_FTP_COULDNT_SET_TYPE’ ,
[ 18 ] => ‘CURLE_PARTIAL_FILE’ ,
[ 19 ] => ‘CURLE_FTP_COULDNT_RETR_FILE’ ,
[ 21 ] => ‘CURLE_QUOTE_ERROR’ ,
[ 22 ] => ‘CURLE_HTTP_RETURNED_ERROR’ ,
[ 23 ] => ‘CURLE_WRITE_ERROR’ ,
[ 25 ] => ‘CURLE_UPLOAD_FAILED’ ,
[ 26 ] => ‘CURLE_READ_ERROR’ ,
[ 27 ] => ‘CURLE_OUT_OF_MEMORY’ ,
[ 28 ] => ‘CURLE_OPERATION_TIMEDOUT’ ,
[ 30 ] => ‘CURLE_FTP_PORT_FAILED’ ,
[ 31 ] => ‘CURLE_FTP_COULDNT_USE_REST’ ,
[ 33 ] => ‘CURLE_RANGE_ERROR’ ,
[ 34 ] => ‘CURLE_HTTP_POST_ERROR’ ,
[ 35 ] => ‘CURLE_SSL_CONNECT_ERROR’ ,
[ 36 ] => ‘CURLE_BAD_DOWNLOAD_RESUME’ ,
[ 37 ] => ‘CURLE_FILE_COULDNT_READ_FILE’ ,
[ 38 ] => ‘CURLE_LDAP_CANNOT_BIND’ ,
[ 39 ] => ‘CURLE_LDAP_SEARCH_FAILED’ ,
[ 41 ] => ‘CURLE_FUNCTION_NOT_FOUND’ ,
[ 42 ] => ‘CURLE_ABORTED_BY_CALLBACK’ ,
[ 43 ] => ‘CURLE_BAD_FUNCTION_ARGUMENT’ ,
[ 45 ] => ‘CURLE_INTERFACE_FAILED’ ,
[ 47 ] => ‘CURLE_TOO_MANY_REDIRECTS’ ,
[ 48 ] => ‘CURLE_UNKNOWN_TELNET_OPTION’ ,
[ 49 ] => ‘CURLE_TELNET_OPTION_SYNTAX’ ,
[ 51 ] => ‘CURLE_PEER_FAILED_VERIFICATION’ ,
[ 52 ] => ‘CURLE_GOT_NOTHING’ ,
[ 53 ] => ‘CURLE_SSL_ENGINE_NOTFOUND’ ,
[ 54 ] => ‘CURLE_SSL_ENGINE_SETFAILED’ ,
[ 55 ] => ‘CURLE_SEND_ERROR’ ,
[ 56 ] => ‘CURLE_RECV_ERROR’ ,
[ 58 ] => ‘CURLE_SSL_CERTPROBLEM’ ,
[ 59 ] => ‘CURLE_SSL_CIPHER’ ,
[ 60 ] => ‘CURLE_SSL_CACERT’ ,
[ 61 ] => ‘CURLE_BAD_CONTENT_ENCODING’ ,
[ 62 ] => ‘CURLE_LDAP_INVALID_URL’ ,
[ 63 ] => ‘CURLE_FILESIZE_EXCEEDED’ ,
[ 64 ] => ‘CURLE_USE_SSL_FAILED’ ,
[ 65 ] => ‘CURLE_SEND_FAIL_REWIND’ ,
[ 66 ] => ‘CURLE_SSL_ENGINE_INITFAILED’ ,
[ 67 ] => ‘CURLE_LOGIN_DENIED’ ,
[ 68 ] => ‘CURLE_TFTP_NOTFOUND’ ,
[ 69 ] => ‘CURLE_TFTP_PERM’ ,
[ 70 ] => ‘CURLE_REMOTE_DISK_FULL’ ,
[ 71 ] => ‘CURLE_TFTP_ILLEGAL’ ,
[ 72 ] => ‘CURLE_TFTP_UNKNOWNID’ ,
[ 73 ] => ‘CURLE_REMOTE_FILE_EXISTS’ ,
[ 74 ] => ‘CURLE_TFTP_NOSUCHUSER’ ,
[ 75 ] => ‘CURLE_CONV_FAILED’ ,
[ 76 ] => ‘CURLE_CONV_REQD’ ,
[ 77 ] => ‘CURLE_SSL_CACERT_BADFILE’ ,
[ 78 ] => ‘CURLE_REMOTE_FILE_NOT_FOUND’ ,
[ 79 ] => ‘CURLE_SSH’ ,
[ 80 ] => ‘CURLE_SSL_SHUTDOWN_FAILED’ ,
[ 81 ] => ‘CURLE_AGAIN’ ,
[ 82 ] => ‘CURLE_SSL_CRL_BADFILE’ ,
[ 83 ] => ‘CURLE_SSL_ISSUER_ERROR’ ,
[ 84 ] => ‘CURLE_FTP_PRET_FAILED’ ,
[ 84 ] => ‘CURLE_FTP_PRET_FAILED’ ,
[ 85 ] => ‘CURLE_RTSP_CSEQ_ERROR’ ,
[ 86 ] => ‘CURLE_RTSP_SESSION_ERROR’ ,
[ 87 ] => ‘CURLE_FTP_BAD_FILE_LIST’ ,
[ 88 ] => ‘CURLE_CHUNK_FAILED’ );

Источник

Функции cURL

Содержание

  • curl_close — Завершает сеанс cURL
  • curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками
  • curl_errno — Возвращает код последней ошибки
  • curl_error — Возвращает строку с описанием последней ошибки текущего сеанса
  • curl_escape — Кодирует заданную строку как URL
  • curl_exec — Выполняет запрос cURL
  • curl_file_create — Создаёт объект CURLFile
  • curl_getinfo — Возвращает информацию об определённой операции
  • curl_init — Инициализирует сеанс cURL
  • curl_multi_add_handle — Добавляет обычный cURL-дескриптор к набору cURL-дескрипторов
  • curl_multi_close — Закрывает набор cURL-дескрипторов
  • curl_multi_errno — Возвращает код последней ошибки множественного curl
  • curl_multi_exec — Запускает подсоединения текущего дескриптора cURL
  • curl_multi_getcontent — Возвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER
  • curl_multi_info_read — Возвращает информацию о текущих операциях
  • curl_multi_init — Создаёт набор cURL-дескрипторов
  • curl_multi_remove_handle — Удаляет cURL дескриптор из набора cURL дескрипторов
  • curl_multi_select — Ждёт активности на любом curl_multi соединении
  • curl_multi_setopt — Установить опции для множественного дескриптора cURL
  • curl_multi_strerror — Возвращает строку, описывающую ошибку
  • curl_pause — Приостановить и возобновить соединение
  • curl_reset — Сбросить все настройки обработчика сессии libcurl
  • curl_setopt_array — Устанавливает несколько параметров для сеанса cURL
  • curl_setopt — Устанавливает параметр для сеанса CURL
  • curl_share_close — Закрыть разделяемый обработчик cURL
  • curl_share_errno — Возвращает код последней ошибки разделяемого обработчика curl
  • curl_share_init — Инициализация разделяемого обработчика cURL
  • curl_share_setopt — Установить опции разделяемого обработчика cURL
  • curl_share_strerror — Возвращает описание для заданного кода ошибки
  • curl_strerror — Получить текстовое описание для кода ошибки
  • curl_unescape — Декодирует закодированную URL-строку
  • curl_version — Возвращает версию cURL

User Contributed Notes 15 notes

Don’t foget to curl_close($ch); Even if curl_errno($ch) != 0

Because if you don’t — on Windows this will produce windows-error-report (Program terminated unexpectedly)

This is sample script to use curl, Just input curl_setopt,
exp :
curlsetop[0] ==> name : CURLOPT_URL ; value : https://amzn.to/3njlWW6
curlsetop[1] ==> name : CURLOPT_RETURNTRANSFER ; value : true
curlsetop[2] ==> name : CURLOPT_FOLLOWLOCATION ; value : true

You can add form input.

function curl_test ( $setopt_content )
<
$ch = curl_init ();
curl_setopt_array ( $ch , $setopt_content );
$result_data = curl_exec ( $ch );
curl_close ( $ch );
return $result_data ;
>

if( $_REQUEST [ ‘submit_yes’ ]== «EXECUTE» )
<

foreach ( $_REQUEST [ ‘setopt_name’ ] as $k => $index_content )
<
$value_content = $_REQUEST [ ‘setopt_value’ ][ $k ];
$index_content = strtoupper ( $index_content );
eval( ‘$index_content = ‘ . $index_content . ‘;’ );
//echo ($index_content);
if( $index_content != » )
<
if( strtoupper ( $value_content )== ‘TRUE’ )
< $setopt_content [ $index_content ]= TRUE ;>
elseif( strtoupper ( $value_content )== ‘FALSE’ )
< $setopt_content [ $index_content ]= FALSE ;>
else
< $setopt_content [ $index_content ]= $value_content ;>
>
>

Источник

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

curl_getinfo — Возвращает информацию об определённой операции

Описание

Возвращает информацию о последней операции.

Список параметров

Дескриптор cURL, полученный из curl_init() .

Одна из перечисленных констант:

  • CURLINFO_EFFECTIVE_URL — Последний использованный URL
  • CURLINFO_HTTP_CODE — Последний код ответа. Начиная с cURL 7.10.8, это устаревший псевдоним CURLINFO_RESPONSE_CODE
  • CURLINFO_FILETIME — Удалённая (серверная) дата загруженного документа, если включена опция CURLOPT_FILETIME ; если получено -1, значит это время неизвестно
  • CURLINFO_TOTAL_TIME — Общее время выполнения транзакции в секундах последней передачи
  • CURLINFO_NAMELOOKUP_TIME — Время разрешения имени сервера в секундах
  • CURLINFO_CONNECT_TIME — Время в секундах, затраченное на установку соединения
  • CURLINFO_PRETRANSFER_TIME — Время в секундах, прошедшее от начала операции до готовности к фактической передаче данных
  • CURLINFO_STARTTRANSFER_TIME — Время в секундах до передачи первого байта данных
  • CURLINFO_REDIRECT_COUNT — Число перенаправлений с включённой опцией CURLOPT_FOLLOWLOCATION
  • CURLINFO_REDIRECT_TIME — Общее время в секундах, затраченное на перенаправления до начала последней транзакции с включённой опцией CURLOPT_FOLLOWLOCATION
  • CURLINFO_REDIRECT_URL — При отключённой опции CURLOPT_FOLLOWLOCATION : URL перенаправления, найденный в прошлой итерации, который необходимо запрашивать вручную. Если опция CURLOPT_FOLLOWLOCATION включена: пустое значение. URL перенаправления в этом случае доступен в CURLINFO_EFFECTIVE_URL
  • CURLINFO_PRIMARY_IP — IP-адрес последнего соединения
  • CURLINFO_PRIMARY_PORT — Порт получателя последнего соединения
  • CURLINFO_LOCAL_IP — Локальный (исходящий) IP адрес последнего соединения
  • CURLINFO_LOCAL_PORT — Локальный (исходящий) порт последнего соединения
  • CURLINFO_SIZE_UPLOAD — Общее количество байт при закачке
  • CURLINFO_SIZE_DOWNLOAD — Общее количество байт при загрузке
  • CURLINFO_SPEED_DOWNLOAD — Средняя скорость загрузки
  • CURLINFO_SPEED_UPLOAD — Средняя скорость закачки
  • CURLINFO_HEADER_SIZE — Суммарный размер всех полученных заголовков
  • CURLINFO_HEADER_OUT — Посылаемая строка запроса. Для работы этого параметра, добавьте опцию CURLINFO_HEADER_OUT к дескриптору с помощью вызова curl_setopt()
  • CURLINFO_REQUEST_SIZE — Суммарный размер всех отправленных запросов, в настоящее время используется только для HTTP-запросов
  • CURLINFO_SSL_VERIFYRESULT — Результат проверки SSL-сертификата, запрошенной с помощью установки параметра CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD — размер скачанных данных, прочитанный из заголовка Content-Length:
  • CURLINFO_CONTENT_LENGTH_UPLOAD — Размер закачиваемых данных
  • CURLINFO_CONTENT_TYPE — Содержимое полученного заголовка Content-Type: . Если NULL, то сервер не послал правильный заголовок Content-Type:
  • CURLINFO_PRIVATE — Внутренние данные, связанные с данным cURL-обработчиком, ранее установленные с помощью опции CURLOPT_PRIVATE в функции curl_setopt()
  • CURLINFO_RESPONSE_CODE — Последний код возврата
  • CURLINFO_HTTP_CONNECTCODE — Код ответа операции CONNECT
  • CURLINFO_HTTPAUTH_AVAIL — Битовая маска, показывающая возможные методы аутентификации, доступные при предыдущем ответе
  • CURLINFO_PROXYAUTH_AVAIL — Битовая маска, показывающая возможные методы аутентификации на прокси, доступные при предыдущем ответе
  • CURLINFO_OS_ERRNO — Номер ошибки при попытке соединения. Код может различаться в зависимости от системы и ОС
  • CURLINFO_NUM_CONNECTS — Количество соединений, совершенных curl для обеспечения предыдущей передачи
  • CURLINFO_SSL_ENGINES — Поддержка OpenSSL
  • CURLINFO_COOKIELIST — Все известные куки
  • CURLINFO_FTP_ENTRY_PATH — Путь входа на FTP-сервер
  • CURLINFO_APPCONNECT_TIME — Время в секундах от начала и до установления SSL/SSH connect/handshake с удалённым хостом
  • CURLINFO_CERTINFO — связка ключей TLS
  • CURLINFO_CONDITION_UNMET — информация о неудовлетворённых временных условиях
  • CURLINFO_RTSP_CLIENT_CSEQ — Следующий RTSP клиентского CSeq
  • CURLINFO_RTSP_CSEQ_RECV — Недавно полученный CSeq
  • CURLINFO_RTSP_SERVER_CSEQ — Следующий RTSP серверного CSeq
  • CURLINFO_RTSP_SESSION_ID — ID сессии RTSP
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T — Content-length загрузки. Это значение считывается из поля Content-Type: . -1 если размер не известен
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T — Указанный размер загрузки. -1 если размер не известен
  • CURLINFO_HTTP_VERSION — Версия, использованная в последнем HTTP-соединении. Возвращаемое значение будет одной из определённых констант CURL_HTTP_VERSION_* или 0, если версия не может быть определена
  • CURLINFO_PROTOCOL — Протокол, использованный в последнем HTTP-соединении. Возвращаемое значение будет точно одним из значений CURLPROTO_*
  • CURLINFO_PROXY_SSL_VERIFYRESULT — Результат проверки сертификата, который был запрошен (с использованием параметра CURLOPT_PROXY_SSL_VERIFYPEER ). Используется только для HTTPS-прокси
  • CURLINFO_SCHEME — Схема URL, используемая для самого последнего соединения
  • CURLINFO_SIZE_DOWNLOAD_T — Общее количество скачанных байтов. Номер предназначен только для последней передачи и будет сбрасываться для каждой новой передачи.
  • CURLINFO_SIZE_UPLOAD_T — Общее количество загруженных байтов
  • CURLINFO_SPEED_DOWNLOAD_T — Средняя скорость скачивания в байтах/секунду, измеренная для полного скачивания
  • CURLINFO_SPEED_UPLOAD_T — Средняя скорость загрузки в байтах/секунду, измеренная для полной загрузки
  • CURLINFO_APPCONNECT_TIME_T — Время в микросекундах, которое прошло с самого начала до тех пор, пока соединение/рукопожатие SSL/SSH не было завершено
  • CURLINFO_CONNECT_TIME_T — Общее время, затрачиваемое в микросекундах с начала до момента подключения к удалённому хосту (или прокси-серверу)
  • CURLINFO_FILETIME_T — Удалённое время извлечённого документа (как метка времени Unix), альтернатива CURLINFO_FILETIME , чтобы разрешить системам с 32-битными long-переменными извлекать даты вне диапазона 32-битных временных меток
  • CURLINFO_NAMELOOKUP_TIME_T -в Время в микросекундах от начала до разрешения имени
  • CURLINFO_PRETRANSFER_TIME_T — Время в микросекундах, затраченное с самого начала до начала передачи файла
  • CURLINFO_REDIRECT_TIME_T — Общее время в микросекундах, которое потребовалось для всех шагов перенаправления, включая поиск имени, подключение, предварительный перенос и передачу до запуска окончательной транзакции
  • CURLINFO_STARTTRANSFER_TIME_T — Время в микросекундах, которое прошло с начала до получения первого байта
  • CURLINFO_TOTAL_TIME_T — Общее время в микросекундах для предыдущей передачи, включая разрешение имён, TCP-соединение и т. д.

Возвращаемые значения

Если параметр option указан, то возвращается его значение. Иначе возвращается ассоциативный массив со следующими элементами (которые соответствуют значениям аргумента option ) или false в случае возникновения ошибки:

  • «url»
  • «content_type»
  • «http_code»
  • «header_size»
  • «request_size»
  • «filetime»
  • «ssl_verify_result»
  • «redirect_count»
  • «total_time»
  • «namelookup_time»
  • «connect_time»
  • «pretransfer_time»
  • «size_upload»
  • «size_download»
  • «speed_download»
  • «speed_upload»
  • «download_content_length»
  • «upload_content_length»
  • «starttransfer_time»
  • «redirect_time»
  • «certinfo»
  • «primary_ip»
  • «primary_port»
  • «local_ip»
  • «local_port»
  • «redirect_url»
  • «request_header» (возвращается только при установленной опции CURLINFO_HEADER_OUT с помощью вызова curl_setopt() до выполнения запроса)

Учтите, что внутренние данные не добавляются в ассоциативный массив и должны получаться отдельно с помощью опции CURLINFO_PRIVATE .

Список изменений

Версия Описание
8.0.0 handle теперь ожидает экземпляр CurlHandle ; раньше, ожидался ресурс ( resource ).
8.0.0 option is nullable now; previously, the default was 0 .
7.3.0 Добавлены CURLINFO_CONTENT_LENGTH_DOWNLOAD_T , CURLINFO_CONTENT_LENGTH_UPLOAD_T , CURLINFO_HTTP_VERSION , CURLINFO_PROTOCOL , CURLINFO_PROXY_SSL_VERIFYRESULT , CURLINFO_SCHEME , CURLINFO_SIZE_DOWNLOAD_T , CURLINFO_SIZE_UPLOAD_T , CURLINFO_SPEED_DOWNLOAD_T , CURLINFO_SPEED_UPLOAD_T , CURLINFO_APPCONNECT_TIME_T , CURLINFO_CONNECT_TIME_T , CURLINFO_FILETIME_T , CURLINFO_NAMELOOKUP_TIME_T , CURLINFO_PRETRANSFER_TIME_T , CURLINFO_REDIRECT_TIME_T , CURLINFO_STARTTRANSFER_TIME_T , CURLINFO_TOTAL_TIME_T .

Примеры

Пример #1 Пример использования curl_getinfo()

// Создаём дескриптор cURL
$ch = curl_init ( ‘http://www.example.com/’ );

// Запускаем
curl_exec ( $ch );

// Проверяем наличие ошибок
if (! curl_errno ( $ch )) <
$info = curl_getinfo ( $ch );
echo ‘Прошло ‘ , $info [ ‘total_time’ ], ‘ секунд во время запроса к ‘ , $info [ ‘url’ ], «\n» ;
>

// Закрываем дескриптор
curl_close ( $ch );
?>

Пример #2 Пример использования curl_getinfo() с параметром option

// Создаём дескриптор cURL
$ch = curl_init ( ‘http://www.example.com/’ );

// Запускаем
curl_exec ( $ch );

// Проверяем наличие ошибок
if (! curl_errno ( $ch )) <
switch ( $http_code = curl_getinfo ( $ch , CURLINFO_HTTP_CODE )) <
case 200 : # OK
break;
default:
echo ‘Неожиданный код HTTP: ‘ , $http_code , «\n» ;
>
>

// Закрываем дескриптор
curl_close ( $ch );
?>

Примечания

Информация, собранная этой функцией, будет сохранена при дальнейшем использовании дескриптора. Это означает, что если статистика не будет перезаписана самой функцией, будет возвращаться информация по предыдущему запросу.

User Contributed Notes 13 notes

Here are the response codes ready for pasting in an ini-style file. Can be used to provide more descriptive message, corresponding to ‘http_code’ index of the arrray returned by curl_getinfo().
These are taken from the W3 consortium HTTP/1.1: Status Code Definitions, found at
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

[Informational 1xx]
100=»Continue»
101=»Switching Protocols»

[Successful 2xx]
200=»OK»
201=»Created»
202=»Accepted»
203=»Non-Authoritative Information»
204=»No Content»
205=»Reset Content»
206=»Partial Content»

[Redirection 3xx]
300=»Multiple Choices»
301=»Moved Permanently»
302=»Found»
303=»See Other»
304=»Not Modified»
305=»Use Proxy»
306=»(Unused)»
307=»Temporary Redirect»

[Client Error 4xx]
400=»Bad Request»
401=»Unauthorized»
402=»Payment Required»
403=»Forbidden»
404=»Not Found»
405=»Method Not Allowed»
406=»Not Acceptable»
407=»Proxy Authentication Required»
408=»Request Timeout»
409=»Conflict»
410=»Gone»
411=»Length Required»
412=»Precondition Failed»
413=»Request Entity Too Large»
414=»Request-URI Too Long»
415=»Unsupported Media Type»
416=»Requested Range Not Satisfiable»
417=»Expectation Failed»

[Server Error 5xx]
500=»Internal Server Error»
501=»Not Implemented»
502=»Bad Gateway»
503=»Service Unavailable»
504=»Gateway Timeout»
505=»HTTP Version Not Supported»

And an example usage:
= curl_init (); // create cURL handle (ch)
if (! $ch ) <
die( «Couldn’t initialize a cURL handle» );
>
// set some cURL options
$ret = curl_setopt ( $ch , CURLOPT_URL , «http://mail.yahoo.com» );
$ret = curl_setopt ( $ch , CURLOPT_HEADER , 1 );
$ret = curl_setopt ( $ch , CURLOPT_FOLLOWLOCATION , 1 );
$ret = curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 0 );
$ret = curl_setopt ( $ch , CURLOPT_TIMEOUT , 30 );

// execute
$ret = curl_exec ( $ch );

if (empty( $ret )) <
// some kind of an error happened
die( curl_error ( $ch ));
curl_close ( $ch ); // close cURL handler
> else <
$info = curl_getinfo ( $ch );
curl_close ( $ch ); // close cURL handler

if (empty( $info [ ‘http_code’ ])) <
die( «No HTTP code was returned» );
> else <
// load the HTTP codes
$http_codes = parse_ini_file ( «path/to/the/ini/file/I/pasted/above» );

// echo results
echo «The server responded:
» ;
echo $info [ ‘http_code’ ] . » » . $http_codes [ $info [ ‘http_code’ ]];
>

Источник

Читайте также:  Чем стирать куртку керри
Оцените статью