Как пользоваться curl: примеры и разбор команды

Основной синтаксис команды curl

Итак, давайте узнаем, как пользоваться утилитой. Основной синтаксис Curl выглядит следующим образом:

curl [OPTIONS] [URL]

Проверяем доступность определённого веб сайта

Как узнать, доступен ли определённый веб сайт? cURL поможет ответить на данный вопрос. Данный скрипт можно использовать совместно с планировщиком для мониторинга сайта.

Замените URL в строке 3 на тот, который вам нужен.  Скопируйте код на свою страницу, и станет известно, доступен ли указанный сайт.

Замена cURL для функции file_get_contents()

Функция file_get_contents() очень полезная, но на многих хостингах она отключена. С помощью cURL можно написать функцию, которая будет работать в точности как file_get_contents().

function file_get_contents_curl($url) {$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Устанавливаем параметр, чтобы curl возвращал данные, вместо того, чтобы выводить их в браузер.curl_setopt($ch, CURLOPT_URL, $url);

$data = curl_exec($ch);curl_close($ch);

return $data;}

Загружаем и сохраняем изображения со страницы с помощью cURL

Данная функция может быть очень полезна: задаем ей URL страницы и она сохраняет все изображения с нее на вашем сервере.

Конвертируем валюту с помощью cURl и Google

Пересчет валюты достаточно простое дело, но курсы достаточно часто изменяются, поэтому приходится использовать сервисы, подобные Google, для получения текущих значений курса пересчета. Функция currency() получает 3 параметра: исходная валюта, целевая валюта и сумма.

Получаем информацию о размере файла с помощью cURL

Как определить размер определенного файла, расположенного на другом сервере? Поможет следующая функция. Она получает 3 параметра: URL файла, и (если требуется) имя пользователя и пароль.

Загрузка через FTP с помощью cURL

PHP имеет библиотеку FTP library, но также можно использовать cURL для загрузки файлов на FTP сервер. Вот рабочий пример:

// Открываем файл$file = fopen(«/path/to/file», «r»);

Curl и ftp

Утилита поддерживает FTP! Вы можете использовать её для загрузки файлов с удалённого сервера.

:/>  Настройка яркости экрана windows 7 ноутбук

Запуск команд curl из консоли windows

люди, которые буквально не нуждаются в curl исполняемый файл, но вместо этого просто нужно, например, видеть или сохранять результаты запроса GET время от времени, можно использовать powershell напрямую. В обычной командной строке введите:

powershell -Command "(new-object net.webclient).DownloadString('http://example.com')"

что, хотя немного многословно, похоже на ввод

curl http://example.com/

в более Unix-иш среде.

подробнее о net.webclient здесь: WebClient Методы (System.Net).

обновление: мне нравится как Имранхафиз сделал еще один шаг в ответ. Однако я бы предпочел более простой cmd-скрипт, возможно, создающий следующего содержания:

@powershell -Command "(new-object net.webclient).DownloadString('%1')"

который можно было бы назвать так же, как пример Unix-ish выше:

curl http://example.com/

Использование прокси

Если вам нужно использовать прокси сервер для загрузки файлов, то это тоже очень просто. Достаточно задать адрес прокси сервера в опции -x:

Как пользоваться curl?

Мы рассмотрели все, что касается теории работы с утилитой curl, теперь пришло время перейти к практике, и рассмотреть примеры команды curl.

Команда curl

Перед тем как перейти к описанию того как может использоваться команда curl linux, давайте разберем саму утилиту и ее основные опции, которые нам понадобятся. Синтаксис утилиты очень прост:

$ curlопции ссылка

Теперь рассмотрим основные опции:

Это далеко не все параметры curl linux, но здесь перечислено все основное, что вам придется использовать.

Команда curl для работы с файлами

Команды Curl могут загружать файлы из удалённой локации. Есть два способа это сделать:

  • -O сохранит файл в текущем рабочем каталоге с тем же именем, что и у удалённого;
  • -o позволяет указать другое имя файла или местоположение.

Вот пример:

Ограничение скорости

Вы можете ограничить скорость загрузки до необходимого предела, чтобы не перегружать сеть с помощью опции -Y:

:/>  Отключаем автонастройку IPv4-адреса в Windows

Ограничение скорости скачивания

Скачивая или загружая данные с помощью Curl, вы не можете знать, насколько большим будет вывод. Вы можете ограничить скорость скачивания, чтобы убедиться, что Curl не ограничивает пропускную способность канала. 

Команда ниже ограничивает скорость скачивания до 100К:

Отправка данных post

Вы можете отправлять не только файлы, но и любые данные методом POST. Напомню, что этот метод используется для отправки данных различных форм. Для отправки такого запроса используйте опцию -d. Для тестирования будем пользоваться тем же сервисом:

Отправка файлов на другой сервер

Отправка файлов осуществляется методом POST:

Передача и анализ заголовков

Не всегда нам обязательно нужно содержимое страницы. Иногда могут быть интересны только заголовки. Чтобы вывести только их есть опция -I:

Передача и прием куки

Куки или Cookie используются сайтами для хранения некой информации на стороне пользователя. Это может быть необходимо, например, для аутентификации. Вы можете принимать и передавать Cookie с помощью curl. Чтобы сохранить полученные Cookie в файл используйте опцию -c:

Передача файлов

Загрузка файлов, это достаточно просто, но утилита позволяет выполнять и другие действия, например, отправку файлов на ftp сервер. Для этого существует опция -T:

curl -T login.txt ftp://speedtest.tele2.net/upload/

Подборка php песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Скачивание файлов

Curl позволяет сохранить результат сразу в файл, указав указатель на открытый файл в параметре CURLOPT_FILE.

$file_name = __DIR__ . ‘/file.html’;$file = @fopen($file_name, ‘w’);

Совет: отправка информации в google analytics через api

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

:/>  Как разогнать монитор до 75 Герц и выше на видеокартах Intel, AMD, NVIDIA

Установить curl в windows

Чтобы скачать cURL вам нужно перейти по следующему адресу:

Существует много разных версий cURL для разных операционных систем, он может вас запутать с выбором версий. Вам стоит нажать на ссылку “curl Download Wizard”, которая поможет вам легко найти подходящую версию (Смотрите изображение ниже).

Далее нажмите на ссылку “curl executable”.

если ваша операционная система это Windows 64bit выберите Win64 и нажмите на Select, наоборот если ваш Windows является 32bit выберите Windows/Win32.

Wizard отображает для вас список подходящих версий. Здесь я скачиваю первую версию в списке.

Результат скачивания:

После того, как вы скачали cURL, вам не нужно его устанавливать, нужно просто извлечь его в определенную папку.

Открыть папку bin в cURL, и запустить файл curl-ca-bundle.crt для установки сертификата безопасности (Security Certificate).

Открыть окно CMD и CD к папке bin у cURL.

Выполнить следующую команду на cURL чтобы получить информацию страницы google.com.

Смотреть детальную инструкцию использования cURL:

Обычно, чтобы работать с cURL вам нужно CD к папке bin. Но если вы объявляете “путь папки bin” в переменной среде Path, вы можете выполнить это везде.

На Windows, выберите System в Control Panel.

Добавить “путь папки bin” впереди переменной среды Path.

Открыть окно CMD. И выполнить следующую команду:

Оставьте комментарий