|
XII. Функции CURL, Client URL Library
PHP поддерживает libcurl, библиотеку, созданную Daniel'ом Stenberg'ом,
которая даёт возможность соединяться с серверами различных типов и по разным протоколам.
libcurl в настоящее время поддерживает протоколы http, https, ftp, gopher, telnet, dict, file
и ldap. libcurl также поддерживает сертификаты HTTPS, HTTP
POST, HTTP PUT, загрузку по FTP (это можно сделать также РНР-расширением
ftp), загрузку на основе форм HTTP, прокси, куки и аутентификацию user+password.
Эти функции были введены в PHP 4.0.2.
Чтобы использовать функции CURL, вам нужно установить пакет CURL.
PHP требует, чтобы вы использовали CURL 7.0.2-beta или выше. PHP не будет работать с любой версией
CURL ниже 7.0.2-beta.
Для использования РНР-поддержки CURL вы обязаны также скомпилировать PHP
--with-curl[=DIR], где DIR это местоположение директории, содержащей директории lib и include.
В "include"-директории должна быть папка "curl", которая должна содержать
файлы easy.h и curl.h files. Файл "libcurl.a" должен находиться в директории "lib".
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
-
CURLOPT_PORT
(integer)
-
CURLOPT_FILE
(integer)
-
CURLOPT_INFILE
(integer)
-
CURLOPT_INFILESIZE
(integer)
-
CURLOPT_URL
(integer)
-
CURLOPT_PROXY
(integer)
-
CURLOPT_VERBOSE
(integer)
-
CURLOPT_HEADER
(integer)
-
CURLOPT_HTTPHEADER
(integer)
-
CURLOPT_NOPROGRESS
(integer)
-
CURLOPT_NOBODY
(integer)
-
CURLOPT_FAILONERROR
(integer)
-
CURLOPT_UPLOAD
(integer)
-
CURLOPT_POST
(integer)
-
CURLOPT_FTPLISTONLY
(integer)
-
CURLOPT_FTPAPPEND
(integer)
-
CURLOPT_NETRC
(integer)
-
CURLOPT_FOLLOWLOCATION
(integer)
-
CURLOPT_FTPASCII
(integer)
-
CURLOPT_PUT
(integer)
-
CURLOPT_MUTE
(integer)
-
CURLOPT_USERPWD
(integer)
-
CURLOPT_PROXYUSERPWD
(integer)
-
CURLOPT_RANGE
(integer)
-
CURLOPT_TIMEOUT
(integer)
-
CURLOPT_POSTFIELDS
(integer)
-
CURLOPT_REFERER
(integer)
-
CURLOPT_USERAGENT
(integer)
-
CURLOPT_FTPPORT
(integer)
-
CURLOPT_LOW_SPEED_LIMIT
(integer)
-
CURLOPT_LOW_SPEED_TIME
(integer)
-
CURLOPT_RESUME_FROM
(integer)
-
CURLOPT_COOKIE
(integer)
-
CURLOPT_SSLCERT
(integer)
-
CURLOPT_SSLCERTPASSWD
(integer)
-
CURLOPT_WRITEHEADER
(integer)
-
CURLOPT_SSL_VERIFYHOST
(integer)
-
CURLOPT_COOKIEFILE
(integer)
-
CURLOPT_SSLVERSION
(integer)
-
CURLOPT_TIMECONDITION
(integer)
-
CURLOPT_TIMEVALUE
(integer)
-
CURLOPT_CUSTOMREQUEST
(integer)
-
CURLOPT_STDERR
(integer)
-
CURLOPT_TRANSFERTEXT
(integer)
-
CURLOPT_RETURNTRANSFER
(integer)
-
CURLOPT_QUOTE
(integer)
-
CURLOPT_POSTQUOTE
(integer)
-
CURLOPT_INTERFACE
(integer)
-
CURLOPT_KRB4LEVEL
(integer)
-
CURLOPT_HTTPPROXYTUNNEL
(integer)
-
CURLOPT_FILETIME
(integer)
-
CURLOPT_WRITEFUNCTION
(integer)
-
CURLOPT_READFUNCTION
(integer)
-
CURLOPT_PASSWDFUNCTION
(integer)
-
CURLOPT_HEADERFUNCTION
(integer)
-
CURLOPT_MAXREDIRS
(integer)
-
CURLOPT_MAXCONNECTS
(integer)
-
CURLOPT_CLOSEPOLICY
(integer)
-
CURLOPT_FRESH_CONNECT
(integer)
-
CURLOPT_FORBID_REUSE
(integer)
-
CURLOPT_RANDOM_FILE
(integer)
-
CURLOPT_EGDSOCKET
(integer)
-
CURLOPT_CONNECTTIMEOUT
(integer)
-
CURLOPT_SSL_VERIFYPEER
(integer)
-
CURLOPT_CAINFO
(integer)
-
CURLOPT_COOKIEJAR
(integer)
-
CURLOPT_SSL_CIPHER_LIST
(integer)
-
CURLOPT_BINARYTRANSFER
(integer)
-
CURLCLOSEPOLICY_LEAST_RECENTLY_USED
(integer)
-
CURLCLOSEPOLICY_LEAST_TRAFFIC
(integer)
-
CURLCLOSEPOLICY_SLOWEST
(integer)
-
CURLCLOSEPOLICY_CALLBACK
(integer)
-
CURLCLOSEPOLICY_OLDEST
(integer)
-
CURLINFO_EFFECTIVE_URL
(integer)
-
CURLINFO_HTTP_CODE
(integer)
-
CURLINFO_HEADER_SIZE
(integer)
-
CURLINFO_REQUEST_SIZE
(integer)
-
CURLINFO_TOTAL_TIME
(integer)
-
CURLINFO_NAMELOOKUP_TIME
(integer)
-
CURLINFO_CONNECT_TIME
(integer)
-
CURLINFO_PRETRANSFER_TIME
(integer)
-
CURLINFO_SIZE_UPLOAD
(integer)
-
CURLINFO_SIZE_DOWNLOAD
(integer)
-
CURLINFO_SPEED_DOWNLOAD
(integer)
-
CURLINFO_SPEED_UPLOAD
(integer)
-
CURLINFO_FILETIME
(integer)
-
CURLINFO_SSL_VERIFYRESULT
(integer)
-
CURLINFO_CONTENT_LENGTH_DOWNLOAD
(integer)
-
CURLINFO_CONTENT_LENGTH_UPLOAD
(integer)
-
CURLE_OK
(integer)
-
CURLE_UNSUPPORTED_PROTOCOL
(integer)
-
CURLE_FAILED_INIT
(integer)
-
CURLE_URL_MALFORMAT
(integer)
-
CURLE_URL_MALFORMAT_USER
(integer)
-
CURLE_COULDNT_RESOLVE_PROXY
(integer)
-
CURLE_COULDNT_RESOLVE_HOST
(integer)
-
CURLE_COULDNT_CONNECT
(integer)
-
CURLE_FTP_WEIRD_SERVER_REPLY
(integer)
-
CURLE_FTP_ACCESS_DENIED
(integer)
-
CURLE_FTP_USER_PASSWORD_INCORRECT
(integer)
-
CURLE_FTP_WEIRD_PASS_REPLY
(integer)
-
CURLE_FTP_WEIRD_USER_REPLY
(integer)
-
CURLE_FTP_WEIRD_PASV_REPLY
(integer)
-
CURLE_FTP_WEIRD_227_FORMAT
(integer)
-
CURLE_FTP_CANT_GET_HOST
(integer)
-
CURLE_FTP_CANT_RECONNECT
(integer)
-
CURLE_FTP_COULDNT_SET_BINARY
(integer)
-
CURLE_PARTIAL_FILE
(integer)
-
CURLE_FTP_COULDNT_RETR_FILE
(integer)
-
CURLE_FTP_WRITE_ERROR
(integer)
-
CURLE_FTP_QUOTE_ERROR
(integer)
-
CURLE_HTTP_NOT_FOUND
(integer)
-
CURLE_WRITE_ERROR
(integer)
-
CURLE_MALFORMAT_USER
(integer)
-
CURLE_FTP_COULDNT_STOR_FILE
(integer)
-
CURLE_READ_ERROR
(integer)
-
CURLE_OUT_OF_MEMORY
(integer)
-
CURLE_OPERATION_TIMEOUTED
(integer)
-
CURLE_FTP_COULDNT_SET_ASCII
(integer)
-
CURLE_FTP_PORT_FAILED
(integer)
-
CURLE_FTP_COULDNT_USE_REST
(integer)
-
CURLE_FTP_COULDNT_GET_SIZE
(integer)
-
CURLE_HTTP_RANGE_ERROR
(integer)
-
CURLE_HTTP_POST_ERROR
(integer)
-
CURLE_SSL_CONNECT_ERROR
(integer)
-
CURLE_FTP_BAD_DOWNLOAD_RESUME
(integer)
-
CURLE_FILE_COULDNT_READ_FILE
(integer)
-
CURLE_LDAP_CANNOT_BIND
(integer)
-
CURLE_LDAP_SEARCH_FAILED
(integer)
-
CURLE_LIBRARY_NOT_FOUND
(integer)
-
CURLE_FUNCTION_NOT_FOUND
(integer)
-
CURLE_ABORTED_BY_CALLBACK
(integer)
-
CURLE_BAD_FUNCTION_ARGUMENT
(integer)
-
CURLE_BAD_CALLING_ORDER
(integer)
-
CURLE_HTTP_PORT_FAILED
(integer)
-
CURLE_BAD_PASSWORD_ENTERED
(integer)
-
CURLE_TOO_MANY_REDIRECTS
(integer)
-
CURLE_UNKNOWN_TELNET_OPTION
(integer)
-
CURLE_TELNET_OPTION_SYNTAX
(integer)
-
CURLE_OBSOLETE
(integer)
-
CURLE_SSL_PEER_CERTIFICATE
(integer)
После того как вы скомпилировали PHP с поддержкой CURL, вы можете начать
использовать curl-функций. Основная идея функций CURL - вы инициализируете CURL-сессию
с использованием
curl_init()
, затем можно установить все ваши опции для трансфера через использование
curl_exec()
, а затем закрыть сессию функцией
curl_close()
. Вот пример использования CURL-функций для получения страницы example.com в
файле:
Пример 1. Использование модуля CURL РНР для получения example.com
<?php
$ch = curl_init ("http://www.example.com/");
$fp = fopen ("example_homepage.txt", "w");
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
?>
|
|
-
Содержание
-
curl_close - закрывает сессию CURL
-
curl_errno - возвращает integer, содержащее номер последней ошибки
-
curl_error - возвращает строку, содержащую последнюю ошибку текущей сессии
-
curl_exec - выполняет CURL-сессию
-
curl_getinfo - получает информацию о специфическом трансфере
-
curl_init - инициализирует CURL-сессию
-
curl_setopt - устанавливает опции для CURL-транфера
-
curl_version - возвращает текущую версию CURL
|
|