CURL справка
Небольшая справка по функциям CURL

CURL — это свободная (распространяемая по лицензии MIT кроссплатформенная служебная программа командной строки для передачи файлов по различным протоколам с синтаксисом URL. Программа СURL может автоматизировать передачу файлов или последовательность таких операций. Например, это хорошее средство для моделирования действий пользователя в веб-обозревателе.

Убедитесь, что PHP на вашем сервере сконфигурирован с CURL.

Функция устанавливает параметр, имеющий имя option, сессии CURL с именем ch, в значение value.

Для возможных значений аргумента option, которые перечислены в следующем списке, соответствующее значение value должно указываться в виде целого числа:

CURLOPT_INFILESIZE — установить ожидаемый размер получаемого файла при его загрузке на удаленный сервер.

CURLOPT_VERBOSE — при ненулевом значении будет сообщаться все, что происходит во время сессии.

CURLOPT_HEADER — при ненулевом значении заголовок будет включаться в содержимое вывода.

CURLOPT_NOPROGRESS — при ненулевом значении блокируется отображение индикатора хода выполнения операций передачи. По умолчанию этот параметр установлен, и его следует изменять только для целей отладки.

CURLOPT_NOBODY — при ненулевом значении содержимое тега BODY не будет включаться в вывод.

CURLOPT_FAILonerror — при ненулевом значении будет происходить обычное завершение сценария PHP, если будет получен код возврата HTTP со значением большим, чем 300. По умолчанию происходит нормальный возврат в сценарий с игнорированием кода, вызвавшего ошибку.

CURLOPT_UPLOAD — при ненулевом значении происходит подготовка PHP для загрузки.

CURLOPT_POST — при ненулевом значении PHP выполняет обычный метод HTTP POST. Тип POST будет иметь нормальный вид application/x-www- from-urlencoded.

CURLOPT_FTPLISTONLY — при ненулевом значении PHP будет выводить имена файлов только в FTP.

CURLOPT_FTPAPPEND — при ненулевом значении PHP будет осуществлять добавление в конец существующего удаленного FTP-файла, вместо его перезаписи.

CURLOPT_NETRC — при ненулевом значении PHP будет просматривать файл ~./netrc в поисках имени пользователя и пароля для осуществления доступа к удаленному сайту.

CURLOPT_FOLLOWLOCATION — при ненулевом значении переадресация будет проходить согласно HTTP-заголовкам Location.

CURLOPT_PUT — при ненулевом значении файл отсылается методом HTTP PUT. Параметры файла CURLOPT_INFILE и CURLOPT_INFILESIZE также должны быть указаны.

CURLOPT_MUTE — при ненулевом значении PHP будет исполнять функции CURL без дополнительного вывода.

CURLOPT_TIMEOUT — позволяет передать целочисленный параметр, определяющий в секундах максимально допустимое время исполнения функций CURL.

CURLOPT_LOW_SPEED_LIMIT — принимает целочисленный параметр, определяющий скорость передачи данных в байтах в секунду, которая будет использоваться для проверки установленного соединения. Сеанс прерывается, если превышается время максимально допустимого ожидания CURLOPT_ LOW_SPEED_TIME.

CURLOPT_LOW_SPEED_TIME — принимает целочисленный параметр, определяющий максимальное время передачи данных в секундах, при скорости CURLOPT_ LOW_SPEED_LIMIT. При превышении этого времени PHP будет прерывать выполнение операции, рассматривая ее как недопустимо медленную.

CURLOPT_RESUME_FROM — принимает целочисленный параметр, определяющий смещение в байтах, с которого должна начинаться передача.

CURLOPT_SSLVERSION — принимает целочисленный параметр, определяющий используемую версию SSL. По умолчанию PHP будет пытаться самостоятельно определить версию, хотя в некоторых случаях ее следует устанавливать вручную.

CURLOPT_TIMECONDITION — позволяет передать константный параметр, определяющий смысл параметра CURLOPT_TIMEVALUE. Можно использовать значение по умолчанию TIMECOND_IFMODSINCE или значение TIMECOND_ISUNMODSINCE.

CURLOPT_TIMEVALUE — позволяет передать целочисленный параметр, содержащий значение времени в формате “UNIX-timestamp”. Это значение будет использоваться с учетом установки CURLOPT_TIMEVALUE.

Для следующих возможных значений аргумента option соответствующее значение value должно указываться в строковое значение.

CURLOPT_URL — адрес URL, по которому отправляется запрос. Этот параметр также можно установить при вызове функции curl_init().

CURLOPT_USERPWD — позволяет при подключении передавать строку в формате “[username]:[password]”.

CURLOPT_PROXYUSERPWD — позволяет при подключении к HTTP-прокси передавать строку в формате “[username]:[password]”.

CURLOPT_RANGE — заставляет передавать диапазон в формате “X-Y”, где значение X или Y может быть не указано. При использовании протокола HTTP возможна одновременная передача нескольких интервалов, разделенных запятыми.

CURLOPT_POSTFIELDS — позволяет передавать полную строку данных, посылаемых методом HTTP POST.

CURLOPT_REFERER — позволяет передавать строку, содержащую заголовок “referer”, используемый в запросах HTTP.

CURLOPT_USERAGENT — позволяет передавать строку, содержащую заголовок “user-agent”, используемый в запросах HTTP.

CURLOPT_FTPPORT — позволяет передавать строку, содержащую значение IP- адреса, используемого инструкцией POST для подключения к удаленному серверу FTP. Эта строка может содержать простой IP-адрес, имя хоста или имя сетевого интерфейса (под UNIX), или даже символ ?, указывающий системный адрес IP, используемый по умолчанию.

CURLOPT_COOKIE — позволяет передать строку с содержимым cookie, который будет отправлен в заголовке HTTP.

CURLOPT_SSLCERT — позволяет передать строку с именем файла, содержащего SSL-сертификат формата PEM.

CURLOPT_SSLCERTPASSWD — позволяет передать строку с паролем, необходимым для использования сертификата, указанного параметром CURLOPT_SSLCERT.

CURLOPT_COOKIEFILE — позволяет передать строку с именем файла, содержащего данные cookie. Этот файл должен быть в формате Netscape или в виде простого заголовка HTTP, сохраненного в файле.

CURLOPT_CUSTOMREQUEST — позволяет передать строку, которая будет использоваться вместо HTTP запроса GET или HEAD. Этот механизм можно использовать при выполнении устаревшего запроса HTTP, например DELETE. Не стоит использовать эту возможность, не выяснив предварительно, поддерживает ли сервер указанную команду.

Для следующих возможных значений аргумента option соответствующее значение value должно указываться дескриптором, полученным от функции fopen().

CURLOPT_FILE — указывается файл, в котором следует сохранять полученные данные. По умолчанию используется стандартный поток вывода stdout.
CURLOPT_INFILE — задается файл, из которого следует получать данные для передачи.
CURLOPT_WRITEHEADER — указывается файл для записи содержимого заголовков.
CURLOPT_STDERR — указывается файл для сохранения результатов ошибок вместо использовавшегося ранее потока stderr.

Пример:
Вот такой функцией например забираем содержимое страницы с учетом кукисов

function get_page($url) {
//путь куда сохраняем файл с куками
$user_cookie_file = 'cookies.txt';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//– маскируемся под браузер
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)");
//куки
curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file);
//куки
curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file);

$html = curl_exec($ch);
curl_close($ch);
return $html; //Возвращаем результат
}