Curl что это

Curl что это

10 команд curl, которые вам следует знать

Команда Mail.ru Cloud Solutions перевела статью, автор которой составил краткий справочник часто используемых команд curl для протоколов HTTP/HTTPS. Это не замена официального руководства по cURL, скорее, краткий конспект.

cURL (расшифровывается как Client URL) — программное обеспечение, которое предоставляет библиотеку libcurl и инструмент командной строки curl. Возможности cURL огромны, во многих опциях легко потеряться.

curl — инструмент для передачи данных с сервера или на него, при этом используется один из поддерживаемых протоколов: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP. Команда предназначена для работы без взаимодействия с пользователем.

Команда curl запускается из командной строки и предустановлена в большинстве дистрибутивов Linux.

В основном я использовал curl для тестирования API, иногда просто вставляя команды, которые нашел в интернете. Но я хочу разобраться в curl и лучше понять его особенности. Так что поделюсь некоторыми командами, с которыми столкнулся во время работы.

Если никакие аргументы не указаны, то команда curl выполняет HTTP-запрос get и отображает статическое содержимое страницы. Оно аналогично тому, что мы видим при просмотре исходного кода в браузере.

Источник

Что JavaScript-разработчику следует знать о Curl

Доброго времени суток, друзья!

Представляю Вашему вниманию перевод статьи «What JavaScript Developers Should Know About Curl» автора Valery Karpov.

Curl — это популярный инструмент командной строки, часто используемый для отправки HTTP-запросов. Curl поддерживает большое количество протоколов, однако как Node.js-разработчик вы, скорее всего, будете использовать его для отпраки http-запросов к RESTful API.

Документация curl представляет собой перечень из 383 флагов командной строки, поэтому в ней очень трудно найти то, что ищешь. В этой статье я хочу поделиться с вами некоторыми часто используемыми мной шаблонами. Для примеров будет использоваться сервис httpbin.org.

Отправка http-запроса

Загрузка файлов

Wget — самый распространенный инструмент для загрузки файлов посредством командной строки. Он входит в комплект большинства диструбутивов Linux. Однако в OSX его нет.

Curl что это

Для загрузки этого изобюражения необходимо выполнить следующее:

Отправка авторизованного запроса

Вот что происходит при отправке неправильного имени пользователя или пароля:

Отправка POST-запроса, содержащего JSON

Отправка PUT-запроса, содержащего JSON-файл

Заключение

Резюмируя, вот опции curl, которые я нахожу самыми полезными:

Благодарю за потраченное время. Надеюсь, оно было потрачено не зря.

Источник

Введение в curl и его установка

Хотя Postman удобен, его трудно использовать для представления в документации, как совершать запросы с его помощью. Кроме того, разные пользователи, вероятно, используют разные клиенты с графическим интерфейсом или вообще не используют их (предпочитая командную строку)

О curl

Note: Иногда curl пишется как cURL, что означает Client URL.

curl является более распространенным написанием, так что оба варианта верны.

Установка curl

curl доступен на MacOS по умолчанию, для Windows требуется установка. Ниже представлены инструкции по установке curl.

Установка на MacOS

Проверить установлен ли curl на MacOS можно так:

Если такого ответа нет, то curl необходимо скачать и установить

Установка на Windows

После установки проверяем версию установленной curl;

Ответ должен быть примерно таким:

Создание тестового вызова API

После установки curl делаем тестовый вызов API

В ответ должен вернуться минимизированный JSON:

curl и Windows

Если вы используете Windows, обратите внимание на следующие требования к форматированию при использовании curl:

Источник

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

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

Для решения таких задач и задач подобного круга можно воспользоваться утилитой curl. Она позволяет решить намного более широкий круг задач, среди которых даже имитация действий пользователя на сайте. В этой статье мы рассмотрим как пользоваться curl, что это такое и зачем нужна эта программа.

Что такое curl?

Команда curl

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

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

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

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

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

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

Загрузка файлов

Curl что это

Но тут вас ждет одна неожиданность, все содержимое файла будет отправлено на стандартный вывод. Чтобы записать его в какой-либо файл используйте:

Curl что это

Curl что это

Если загрузка была неожиданно прервана, вы можете ее возобновить:

Curl что это

Если нужно, одной командой можно скачать несколько файлов:

Curl что это

Данная команда скачает файл, только если он был изменен после 21 декабря 2017.

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

Curl что это

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

Curl что это

Или проверим отправку файла по HTTP, для этого существует специальный сервис:

Curl что это

В ответе утилита сообщит где вы можете найти загруженный файл.

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

Curl что это

Curl что это

Здесь мы передаем формой поле password, с типом обычный текст, точно так же вы можете передать несколько параметров.

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

Затем можно отправить cookie curl обратно:

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

Curl что это

Curl что это

Аутентификация curl

Точно так же будет выполняться аутентификация на серверах HTTP.

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

Выводы

В этой статье мы рассмотрели как пользоваться curl, зачем нужна эта утилита и основные ее возможности. Несмотря на свою схожесть с wget, они очень сильно отличаются. Команда curl linux предназначена больше для анализа и имитации различных действий на сервере, тогда как wget больше подходит для загрузки файлов и краулинга сайтов.

Источник

Что такое Curl? Как работает эта команда?

Curl что это

Curl что это Curl что это Curl что это

Curl — это кроссплатформенная служебная программа с открытым исходным кодом, популярный инструмент командной строки и библиотека для передачи данных с URL-адресами. Утилита доступна в большинстве систем на основе Unix.

Curl что это

«Купи мне истребитель». Сбор средств для Воздушных Сил ВСУ

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

Практически каждый человек, пользующийся интернетом, незаметно для себя работает с Curl ежедневно. Веб-разработчики также активно используют эту утилиту в процессе своей повседневной отладки.

В этой статье мы рассмотрим весь широкий спектр возможностей этой известной утилиты.

Curl что это

1. Что такое Curl?

Curl является сокращением от Client URL (клиентский URL). Это свободное программное обеспечение, которое позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL через командную строку. Оно также включает в себя библиотеку libcurl (библиотека API для взаимообмена данными), которую можно встраивать в другие приложения.

С помощью этого ПО реализуются базовые возможности работы с URL-страницами и передачи файлов. Программа поддерживает работу с такими протоколами, как DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP, поддерживает сертификаты SSL, методы HTTP POST, HTTP PUT, загрузку на FTP, загрузку через формы HTTP, HTTP-Cookie, туннелирование через HTTP-прокси, методы логин+пароль аутентификации (базовый, дайджест, NTLM, Negotiate, Kerberos, CRAM-MD5, SCRAM-SHA).

2. Возможности Curl

Еще раз повторюсь, что Curl — это программа, работающая в командной строке, позволяющая выполнять HTTP-запросы. При этом взаимодействие можно контролировать различными параметрами и методами. Обычные пользователи чаще всего взаимодействуют с интернетом посредством браузеров (приложений для протокола HTTP/HTTPS), специализированных FTP-клиентов, торрентов и так далее.

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

3. Как работает Curl?

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

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

Стоит отметить, что программа по умолчанию определяет протокол страницы как HTTP.

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

Основные опции Curl:

4. Установка Curl

Работу с Curl поддерживают системы Unix/Linux. В большинстве современных ОС Curl что это Curl что этомногие дистрибутивы Linux, современные версии macOS, Windows 10 утилита установлена по умолчанию.

Установка на Linux

В Ubuntu или Debian для установки Curl нужно в командной строке ввести команду:

Для проверки статуса установки и текущей версии:

Если вы работаета в RHEL, CentOS или Fedora, то для установки необходимо войти через SSH от имени пользователя root и выполнить команду:

Для проверки статуса установки и текущей версии:

Установка Curl в OpenSUSE:

Установка Curl в ArchLinux:

Для справки

В разных дистрибутивах в командную строку можно попасть по-разному. К примеру, в Ubuntu используются такие комбинации:

Установка на macOS

В macOS Curl практически со стопроцентной вероятностью уже предустановлена. Для того, чтобы проверить версию утилиты на своем устройстве, нужно войти в «Терминал» (используйте комбинацию Cmd+spacebar для открытия Spotlight, а затем введите Terminal). В командной строке нужно ввести:

Если по какой-то причине утилита отсутствует, то можно посетить страницу загрузки на официальном сайте: https://curl.se/download.html. Качаете необходимую версию и устанавливаете вручную. Не знаете, что качать? Загружайте Curl Download Wizard и просто следуйте его инструкциям. На сайте также присутствует различная документация, справочная информация и другие полезные для начинающих разделы разделы.

Установка на Windows

5. Как пользоваться Curl? Примеры

Как уже было сказано выше, без указания дополнительных опций команда Curl отображает содержимое веб-страницы в виде исходного кода в средстве просмотра по умолчанию. Чтобы совершать другие действия, необходимо использовать дополнительные аргументы. Рассмотрим самые распространенные варианты использования Curl.

Загрузка файлов

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

Также существует опция для ограничения скорости загрузки до необходимого предела, чтобы не перегружать сеть. Значение указывается в килобайтах в секунду:

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

С помощью Curl файлы можно не только скачивать, но и загружать на FTP-серверы.

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

Примечание: данные в кавычках необходимо кодировать самостоятельно, например, для того, чтобы в строке отобразился пробел, прописывается значение %20.

Передача и прием cookie

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

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

Игнорирование ошибки неправильных или самоподписанных сертификатов

Другие применения Curl

В линуксоподобных системах для поиска информации и файлов, а также других интересных действий, используются регулярные выражения. Утилита Curl также может с ними взаимодействовать, например, в связке с утилитой grep.

Также Curl можно легко использовать внутри языков программирования. Например для вызова утилиты в Python существует несколько способов:

Итоги

Итак, Curl — это действительно простая, но мощная и универсальная утилита Linux, Windows и macOS для доступа к интернету без браузера, загрузки исходного кода сайтов, отправки POST-запросов, тестирования API, имитации действий сетевых пользователей сервисов и так далее.

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

Источник

Curl что это

Copy raw contents

Copy raw contents

Введение в curl и его установка

Хотя Postman удобен, его трудно использовать для представления в документации, как совершать запросы с его помощью. Кроме того, разные пользователи, вероятно, используют разные клиенты с графическим интерфейсом или вообще не используют их (предпочитая командную строку)

Иногда curl пишется как cURL, что означает Client URL. «curl» является более распространенным написанием, так что оба варианта верны.

curl доступен на MacOS по умолчанию, для Windows требуется установка. Ниже представлены инструкции по установке curl.

Установка на MacOS

Проверить установлен ли curl на MacOS можно так:

Если такого ответа нет, то curl необходимо скачать и установить

Установка на Windows

После установки проверяем версию установленной curl;

Ответ должен быть примерно таким:

Создание тестового вызова API

После установки curl делаем тестовый вызов API

В ответ должен вернуться мнимизированный JSON:

Если вы используете Windows, обратите внимание на следующие требования к форматированию при использовании curl:

Источник

10 команд curl, которые вам следует знать

cURL (расшифровывается как Client URL) — программное обеспечение, которое предоставляет библиотеку libcurl и инструмент командной строки curl. Возможности cURL огромны, во многих опциях легко потеряться.

Перевели статью со списком часто используемых команд curl для протоколов HTTP/HTTPS. Это не замена официального руководства по cURL, скорее, краткий конспект.

Что такое curl

curl — инструмент для передачи данных с сервера или на него, при этом используется один из поддерживаемых протоколов: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP. Команда предназначена для работы без взаимодействия с пользователем.

Команда curl запускается из командной строки и предустановлена в большинстве дистрибутивов Linux.

Варианты применения:

В основном я использовал curl для тестирования API, иногда просто вставляя команды, которые нашел в интернете. Но я хочу разобраться в curl и лучше понять его особенности. Так что поделюсь некоторыми командами, с которыми столкнулся во время работы.

Запрос страницы

Если никакие аргументы не указаны, то команда curl выполняет HTTP-запрос get и отображает статическое содержимое страницы. Оно аналогично тому, что мы видим при просмотре исходного кода в браузере.

Источник

Что Такое Curl и Как работает Эта Команда

CURL – это библиотека функций PHP, с помощью которой можно посылать запросы, например, HTTP, из PHP скрипта. CURL поддерживает такие протоколы как HTTP, HTTPS, FTP и другие. Посылать HTTP запросы можно методами GET, POST, PUT.

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

Команда curl

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

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

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

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

Проверка Версии Curl

Прежде чем мы начнём работать с Curl, нам нужно войти в наш VPS. Если вам нужна помощь, ознакомьтесь с этим руководством по SSH.

Сначала давайте проверим её доступною версию, с помощью следующей команды:

В выводе вы должны увидеть версию и список поддерживаемых протоколов. Теперь мы можем взглянуть на некоторые примеры команд Curl.

Основной Синтаксис Команды Curl

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

curl [OPTIONS] [URL]

Самый простой пример использования Curl — для отображения содержимого страницы. Приведённая ниже команда отобразит домашнюю страницу testdomain.com.

Эта команда отобразит полный исходный код домашней страницы домена. Если протокол не указан, Curl интерпретирует его как HTTP.

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

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

Загрузка файлов

Самая частая задача – это загрузка файлов linux. Скачать файл очень просто. Для этого достаточно передать утилите в параметрах имя файла или html страницы:

Но тут вас ждет одна неожиданность, все содержимое файла будет отправлено на стандартный вывод. Чтобы записать его в какой-либо файл используйте:

Если загрузка была неожиданно прервана, вы можете ее возобновить:

Если нужно, одной командой можно скачать несколько файлов:

Еще одна вещь, которая может быть полезной администратору – это загрузка файла, только если он был изменен:

Данная команда скачает файл, только если он был изменен после 21 декабря 2017.

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

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

Или проверим отправку файла по HTTP, для этого существует специальный сервис:

В ответе утилита сообщит где вы можете найти загруженный файл.

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

Здесь мы передаем формой поле password, с типом обычный текст, точно так же вы можете передать несколько параметров.

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

Затем можно отправить cookie curl обратно:

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

Аутентификация curl

Точно так же будет выполняться аутентификация на серверах HTTP.

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

Если вы подключены через прокси-сервер, нужно указать его команде curl при помощи следующих опций (в данном примере имя сервера proxy.yourdomain.com, порт 8080, имя пользователя user, пароль qwerty1234):

Команды Curl для HTTP

Curl также можно использовать c прокси-сервером. Если вы находитесь за прокси-сервером, прослушивающим порт 8090 на sampleproxy.com, загрузите файлы, как показано ниже:

В приведённом выше примере вы можете выбросить -U username:password, если прокси-сервер не требует метода аутентификации.

Типичный HTTP-запрос всегда содержит заголовок. Заголовок HTTP отправляет дополнительную информацию об удалённом веб-сервере вместе с фактическим запросом. С помощью инструментов разработчика в браузере вы можете посмотреть сведения о заголовке, а проверить их можно с помощью команды curl.

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

Используя curl, вы можете сделать запрос GET и POST. Запрос GET будет выглядеть следующим образом:

А вот пример запроса POST:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp

Здесь text=Hello — это параметр запроса POST. Такое поведение похоже на HTML-формы.

Вы также можете указать несколько методов HTTP в одной команде curl. Сделайте это, используя опцию –next, например:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp –next https://myDomain.com/displayResult.jsp

Команда содержит запрос POST, за которым следует запрос GET.

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

“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”

Вы можете изменить дефолтную информацию об агенте пользователя, используя следующую команду:

Теперь вывод будет выглядеть так:

“GET / HTTP/1.1” 200 “_” ”My new Browser”

Команда Curl и Cookies

Утилиту можно использовать для проверки того, какие файлы cookie загружаются по URL. Допустим вы зашли на https://www.samplewebsite.com, вы можете вывести и сохранить файлы cookie в файл, а затем получить к ним доступ, используя команду cat или редактор Vim.

Вот пример такой команды:

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

curl –cookie Mycookies.txt https://www. samplewebsite.com

Curl и FTP

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

В приведённой выше команде ftp://sampleftpserver — это FTP-сервер, который принимает соединения. Вы можете не указывать имя пользователя и пароль для анонимных FTP-соединений. Введите команду и посмотрите, как заполняется индикатор выполнения.

Вы также можете загружать файлы с помощью этой команды:

Опять же таки, мы можем пропустить имя пользователя и пароль для анонимных FTP-соединений.

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

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

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

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

Следующая команда позволит вам скачать info.html с http://yoursite.com и about.html c http://mysite.com в один прием:

Если использовать curl вместе с командой xargs, можно скачивать файлы в соответствии со списком URL, заданном в файле (в данном примере listurls.txt):

Полученные в предыдущем примере файлы cookie можно использовать в дальнейших запросах к тому же самому сайту:

$ curl –cookie cookies.txt https://itproffi.ru

Изменение разрешения имен

Если вы веб-разработчик и хотите протестировать локальную версию сайта, прежде чем загружать его на сервер, при помощи опции —resolve можно указать curl выполнять разрешение имени вашего сайта на адрес локального узла, например:

$ curl –resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

Таким образом, при запросе на http://www.yourdomain.com curl будет запрашивать сайт с локального узла, а не использовать DNS или файл /etc/hosts.

Подключение библиотеки CURL в PHP

Для того чтобы использовать библиотеку CURL ее соответственно нужно подключить.

Примечание!В качестве примера мы будем использовать PHP 5.4.39 на Windows 7, а в качестве Web-сервера у нас будет выступать Apache 2.2.22.

Первое что нужно сделать, это скопировать библиотеки ssleay32.dll, libeay32.dll, libssh2.dll они расположены в директории с PHP, в системный каталог Windows, а именно в C:WindowsSystem32.

Затем в php.ini подключить библиотеку php_curl.dll, т.е. раскомментировать следующую строку

Библиотека не подключена

Все, перезапускаем Apache, вызываем функцию phpinfo() и в случае успешного подключения у Вас должен появиться раздел curl

Если его нет, то это означает только одно, что библиотека не загрузилась, самая распространенная причина этого небыли скопированы вышеперечисленные DLL в системный каталог Windows.

Пример CURL – запрашиваем удаленную страницу для вывода на экран

В данном примере мы просто запросим удаленную страницу по протоколу HTTP методом GET и выведем ее содержимое на экран.

У нас имеется каталог test в нем 2 PHP файла это test_curl.php и test.php, где test_curl.php и есть скрипт где мы будем использовать curl, а test.php удаленный скрипт который мы будем вызывать. Код я подробно прокомментировал.

Код test_curl.php

Код test.php

В итоге если вы запустите test_curl.php у Вас выведется на экран надпись «Заголовок 1», можете поэкспериментировать с передачей параметров id (в данном случае 2 или 3).

Пример CURL – вызываем удаленный скрипт и получаем результат

Сейчас давайте попробуем вызвать скрипт и получить результат, для того чтобы потом его обработать, для примера давайте использовать метод POST. Названия файлов оставим такими же.

Код test_curl.php

Код test.php

И если мы запустим test_curl.php то на экран у нас выведется 111, т.е. 1.11 полученное в результате обращения к удаленному скрипту, умноженное на 100.

А теперь давайте поговорим о функциях и константах к ним.

Часто используемые функции CURL и константы

Подробнее о функциях CURL и константах к ним можете посмотреть на официальном сайте PHP — php.net

На этом все, для начинающих я думаю достаточно Удачи!

POST запрос с помощью CURL

Давайте напишем наш первый скрипт, который отправит данные методом POST на какую-нибудь страницу и посмотрит, что отобразилось на этой странице.

Сначала нам нужен файл, который бы принял наши данные и что-то вывел на страницу. Я расположил его по адресу https://intop24.ru/demo/curl/post.php. В нем содержится следующий код:

if (isset($_POST) && sizeof($_POST) > 0)

Теперь попробуем передать туда какие-то данные:

Результат можно посмотреть здесь: curl_post.php

Отправка файла с помощью CURL

Смысл здесь абсолютно такой же, как и в запросе POST.

Файл, который примет данные: https://intop24.ru/demo/curl/upload_file.php.

Теперь попробуем передать туда какие-то данные:

Результат можно посмотреть здесь: curl_post_file.php

Источник

Руководство по команде curl для начинающих

Оригинал: Linux curl Command Tutorial for Beginners (5 Examples)
Автор: Himanshu Arora
Дата публикации: 26 июля 2018 года
Перевод: А. Кривошей
Дата перевода: февраль 2019 г.

Хотя основным средством, с помощью которого пользователи загружают данные из интернета, являются веб-браузеры, существуют команды Linux, которые также позволяют вам это делать. Эти утилиты пригодятся в системах, где нет графического интерфейса.

Команда curl

Команда curl позволяет вам загружать данные из командной строки Linux. Ниже приводится ее синтаксис:

И вот что говорит об этой команде ее man-страница:

curl предлагает множество полезных трюков, таких как поддержка прокси, пользовательская аутентификация, загрузка по FTP, HTTP post, SSL соединения, куки, передача файлов, возобновление загрузок, Metalink и многое другое.

curl работает на базе libcurl для всех функций, связанных с передачей данных. См. libcurl (3) для деталей.

Ниже приведены примеры в стиле вопрос/ответ, которые должны дать вам лучшее представление о том, как работает curl

Q1. Как работает команда curl?

Возвращаясь к нашему примеру, пока данные загружались в файл ‘test.torrent’ в моей системе, в командной строке был получен следующий вывод:

Curl что это

Вот что говорит справочная страница об индикаторе прогресса, который отображается в выводе:

Q2. Как заставить curl использовать то же имя для скачиваемого файла?

Так что в этом случае был создан файл с именем ‘ubuntu-18.04-desktop-amd64.iso.torrent’.

Q3. Как скачать несколько файлов, используя curl?

Вот эта команда в действии:

Curl что это

Таким образом, вы можете видеть процесс загрузки для обоих URL-адресов.

Q4. Как решить проблему с «Moved»?

Иногда, когда вы передаете URL команде curl, вы получаете сообщения об ошибках типа «Moved» или «Moved Permanently». Это обычно происходит, когда входной URL перенаправляет на какой-либо другой URL. Например, вы открываете веб-сайт, скажем oneplus.com, и он перенаправляет вас на URL-адрес для вашей страны (например, oneplus.in), поэтому вы получаете сообщение об ошибке, подобное следующему:

Curl что это

Q5. Как возобновить загрузку с точки прерывания?

На следующем снимке экрана показана команда curl, возобновляющая загрузку после ее прерывания.

Curl что это

Заключение

Источник

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

Сurl – утилита командной строки для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. Изначально в середине 90-х, на заре развития Интернета, он разрабатывал бота, который должен был загружать с веб-страницы курсы валют и сообщать пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новые функции. Теперь curl используется для передачи любых данных и ряда других полезных задач. Рассмотрим основные моменты работы с этим инструментом.

Синтаксис и опции curl

Синтаксис команды следующий:

В качестве аргумента задается, как правило, URL скачиваемого файла. Основные опции перечислены ниже

Основные опции мы рассмотрим на простых примерах.

Просмотр версии curl

Если вам требуется скачать файл, запустите curl с опцией –O или –o. Первая из них сохраняет файл в текущей рабочей директории под тем же именем, что и в удаленном месторасположении. Вторая опция позволяет вам указать другое имя и/или место для скачивания.

Cохранение файла под исходным именем (yourfile) в текущей рабочей директории.

Cохранение файла под именем newfile в директории /tmp/examplе/.

Возобновление прерванной загрузки

Если скачивание по какой-то причине было прервано (например, пользователь нажал Ctrl+C), вы легко можете возобновить его с момента остановки при помощи опции -C – (дефис, С, тире):

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

Следующая команда позволит вам скачать info.html с http://yoursite.com и about.html c http://mysite.com в один прием:

Если использовать curl вместе с командой xargs, можно скачивать файлы в соответствии со списком URL, заданном в файле (в данном примере listurls.txt):

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

Если вы подключены через прокси-сервер, нужно указать его команде curl при помощи следующих опций (в данном примере имя сервера proxy.yourdomain.com, порт 8080, имя пользователя user, пароль qwerty1234):

Запрос HTTP-заголовков

HTTP-заголовки позволяют удаленному веб-серверу помимо ответа на сам запрос отправлять дополнительную информацию. Она предоставляет клиенту данные о том, как обрабатывать ответ:

Также эту информацию можно получить, воспользовавшись функциями браузера для разработчиков.

cURL POST-запросы с параметрами

Следующая команда отправит на https://yourdomain.com/info.php параметры firstName и lastName с соответствующими значениями:

Этим приемом можно пользоваться для симуляции работы обычных веб-форм.

Следующая команда скачивает в текущую рабочую директорию файл yourfile с удаленного FTP-сервера ftp://yourftpserver (имя пользователя user, пароль qwerty1234):

Если FTP-сервер поддерживает анонимный вход, параметр –u с именем пользователя и пароля указывать не нужно.

Загрузка файлов на FTP-сервер

Для загрузки локального файла mylocalfile.tar.gz воспользуйтесь следующей командой:

Указание агента пользователя

Агент пользователя – часть информации HTTP-запроса. Она показывает, каким браузером пользуется клиент. Можно посмотреть, что имеющаяся версия curl передает по умолчанию и установить новое значение:

Запись файлов cookie с веб-сайта

Хотите посмотреть, какие файлы cookie скачиваются на ваш компьютер, когда вы заходите на определенный сайт? Опция —cookie-jar сохраняет их список в файл, который в дальнейшем можно просмотреть при помощи команды cat.

Отправка файлов cookie на сайт

Полученные в предыдущем примере файлы cookie можно использовать в дальнейших запросах к тому же самому сайту:

Изменение разрешения имен

Если вы веб-разработчик и хотите протестировать локальную версию сайта, прежде чем загружать его на сервер, при помощи опции —resolve можно указать curl выполнять разрешение имени вашего сайта на адрес локального узла, например:

Таким образом, при запросе на http://www.yourdomain.com curl будет запрашивать сайт с локального узла, а не использовать DNS или файл /etc/hosts.

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

Чтобы curl не занимал всю пропускную способность канала, можно ограничить скорость скачивания при помощи опции —limit-rate:

Заключение

Мы рассмотрели краткую историю появления curl и наиболее характерные примеры применения этой команды. Для более подробной информации можно обратиться к соответствующей man-странице.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

11 примеров использование команд cURL в режиме реального времени

Curl что это

1. Проверка возможности подключения к URL-адресу

2. Сохранение вывод URL / URI в файл

Если нужно сохранить содержимое URL или URI в конкретном файле, используйте следующий синтаксис:

3. Показать заголовок запроса и ответа

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

4. Загрузить с предельной скоростью

Если нужно узнать, сколько времени требуется для загрузки с определенной скоростью, то используйте следующую команду:

5. Использование прокси для подключения

Если необходимо проверить, можно ли использовать прокси-сервер, примените следующий синтаксис:

6. Проверка URL-адресас введением заголовка

Мы просим curl передать Content-Type в качестве application / json в заголовок запроса.

7. Добавить дополнительный заголовок

8. Открыть только заголовок ответа

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

Если необходимо получить доступ к https URL-адресу, который выдает ошибку сертификата из-за несоответствия имени хоста, можно использовать следующий синтаксис.

10. Подключиться с использованием определенного протокола (SSL / TLS)

Для подключения с использованием SSLV2:

Для подключения с использованием SSLV3:

Для подключения через TLS:

11. Загрузить файл с FTP-сервера

Всегда можно использовать «-v» с любым синтаксисом для вывода в подробном режиме.

Использования cURL онлайн

Curl что это

cURL command line builder –позволяет создать команду cURL, с помощью которой можно ввести информацию в пользовательский интерфейс.

Curl что это

Пожалуйста, оставляйте ваши мнения по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, отклики, дизлайки, подписки, лайки!

Вадим Дворников автор-переводчик статьи « 11 cURL Command Usage with Real-Time Example »

Источник

Утилита командной строки CURL

CURL — утилита командной строки для Linux или Windows, поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, POP3, IMAP и SMTP. Она отлично подходит для имитации действий пользователя на страницах сайтов и других операций с URL адресами. Поддержка CURL добавлена в множество различных языков программирования и платформ.

Curl что это

Запускаем командную строку, переходим в директорию curl/bin и пытаемся скачать главную страницу Google:

Следовать за редиректами

Сохранить вывод в файл

Сохраняем страницу Google в файл google.html :

Сохраняем документ gettext.html в файл gettext.html :

Загрузить файл, только если он изменён

Прохождение аутентификации HTTP

Получение и отправка cookie

Cookie используются сайтами для хранения некой информации на стороне пользователя. Сервер сохраняет cookie на стороне клиента (т.е. в браузере), отправляя заголовки:

А браузер, в свою очередь, отправляет полученные cookie обратно на сервер при каждом запросе. Разумеется, тоже в заголовках:

Передать cookie на сервер, как будто они были ранее получены от сервера:

Чтобы сохранить полученные сookie в файл:

Затем можно отправить сохраненные в файле cookie обратно:

Файл cookie.txt имеет вид:

Получение и отправка заголовков

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

Если содержимое страницы не нужно, а интересны только заголовки (будет отправлен HEAD запрос):

А вот так можно отправить свой заголовок:

Отправка данных методом POST

Содержимое файла data.txt :

Пример URL-кодирования данных из файла перед отправкой POST-запроса:

Содержимое файла username.txt :

Загрузка файлов методом POST

Чтобы отправить на сервер данные такой формы:

Работа по протоколу FTP

Скачать файл с FTP-сервера:

Если заданный FTP путь является директорией, то по умолчанию будет выведен список файлов в ней:

Источник

Глубокое понимание curl

Почти каждый API показывает, как взаимодействовать с API с помощью curl. Поэтому, прежде чем двигаться дальше, давайте немного остановимся и узнаем больше о curl.

Почему curl?

Каждый язык программирования имеет свой способ совершать веб-вызовы. Вместо того, чтобы тратить силы, пытаясь показать, как совершать веб-вызовы на Java, Python, C ++, JavaScript, Ruby и т.д., можно просто использовать curl.

curl предоставляет общий, независимый от языка способ демонстрации HTTP-запросов и ответов. Пользователи могут видеть формат запроса, включая любые заголовки и другие параметры. Можно перевести результат в определенный формат для используемого языка.

Используем curl для получения веб-страницы

Как упоминалось ранее, одна из причин, по которой API REST настолько знакомы, заключается в том, что REST следует той же модели, что и веб (см. Что такое REST API?). При вводе http-адреса в адресную строку браузера мы говорим браузеру сделать HTTP-запрос к ресурсу на сервере. Сервер возвращает ответ, а наш браузер преобразует ответ в более визуальное отображение. Но мы также можем увидеть и сырой код.

Чтобы увидеть пример того, как curl извлекает веб-ресурс, откройте терминал и введите следующее:

Запросы и ответы содержат заголовки

При вводе адреса веб-сайта мы видим только текст ответа. Но на самом деле происходит гораздо больше процессов. Когда мы делаем запрос, мы отправляем заголовок запроса, который содержит информацию о запросе. Ответ также содержит заголовок ответа.

Заголовок будет включен над телом ответа:

При посещении веб-сайта мы отправляем запрос, используя метод GET. Существуют и другие методы HTTP, которые можно использовать при взаимодействии с REST API. Вот общие методы, используемые при работе с конечными точками REST:

HTTP методОписание
POSTСоздание ресурса
GETЧтение (получение) ресурса
PUTОбновление ресурса
DELETEУдаление ресурса

Распаковка curl запроса API сервиса прогноза погоды

Рассмотрим подробнее запрос, который сделали в API сервиса прогноза погоды в предыдущем разделе Создание curl запроса:

У curl есть сокращенные имена для различных опций, которые вы включаете в свой запрос.

Вот расшифровка команд:

Строки запроса и параметры

Общие команды curl, связанные с REST

У curl много возможных команд, но при работе с REST API наиболее распространены следующие:

В документации curl есть полный список команд curl.

Пример curl команды

Вот пример запроса curl, который объединяет некоторые из этих команд:

Запрос также может быть отформатирован с разрывом строки, чтобы быть более читабельным:

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

Заголовок Accept сообщает серверу, что в ответе мы принимаем только формат JSON.

👨‍💻 Опрос

Проверьте свою внимательность. Что означают следующие параметры?

Для более подробного изучения curl в документировании REST API можно посмотреть REST-esting with curl.

Источник

Что такое команда cURL и примеры ее использования

Что такое cURL? cURL — это сокращение от «Client URL». Данная утилита доступна в большинстве систем на основе Unix и часто используется для получения данных по заданному url или передачи и получения файлов по различным протоколам. Команда cURL поддерживает множество протоколов, сред них:

если у вас установлена ОС Windows, то вам надо будет скачать библиотеку с сайта curl.haxx.se/download.html

Основной синтаксис cURL выглядит следующим образом:

Вот параметры, которые мы будем использовать при отправке запросов:

##Проверка версии cURL

##POST запрос Иногда для тестирования API нужно отправить какие-либо данные, обычно это делают через POST-запрос. Если вы делаете POST-запрос при помощи curl, то можете отправить данные либо в виде списка имя=значение, либо в виде JSON. Запрос в виде списка имя=значение:

Запрос в виде JSON:

Скачать файл и сохранить под оригинальным именем. В этом примере архив filename.tar.gz будет загружен в текущий рабочий каталог.

Скачать файл и сохранить под другим именем:

Скачать файл надежно через SSH с помощью следующей команды:

Скачать список файлов Можно скачать список файлов, для этого надо создать файл url_list.txt, который содержит список всех URL-адресов для загрузки и запустить следующую команду, которая выполнит загрузку всех файлов с этих URL.

##Доступ к FTP-серверу Чтобы получить доступ к FTP-серверу с помощью cURL, надо использовать следующую команду:

cURL будет подключаться к FTP-серверу и выведет список всех файлов и каталогов в домашнем каталоге пользователя Вы можете скачать файл с помощью FTP:

и загрузить файл на сервер FTP:

Можно пропустить имя пользователя и пароль для анонимных FTP-соединений.

Игнорирование ошибки неправильных или самоподписанных сертификатов

Указание типа запроса

если требуется передать JSON данные на сервер, то надо указать заголовок Content-Type: application/json и выполнить следующий запрос:

пример запроса с типом DELETE

Запрос с cookies

Для того что бы использовать cookies в запросе нужно сохранить файлы cookie в файл, а затем получить к ним доступ, используя команду cat или редактор Vim. Вот пример запроса который сохранит cookie в файл:

теперь можно использовать данный файл что бы сделать запрос с cookies:

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

Источник

curl — учимся тестировать API

Curl что это

Осваиваем быстрый, маленький и простой инструмент тестирования API

“Когда я начал изучать HTTP-протокол и надо было работать с URL-ами и передаваемыми в них данными, в каждом найденном инструменте не хватало хорошей документации, или она была, но в виде избыточно сложных инструкций для простых вещей, типа отправки простого HTTP-запроса. Однажды обратил внимание на curl, которым раньше скачивал файлы, и это оказался лучший инструмент для изучения веб-API.

Этот материал требует базового знакомства с HTTP-протоколом, понимания что такое веб-API, а также умения работать с командной строкой в Windows, надеемся ты это умеешь.

Настройка

Как всякий серьезный софт, curl требует установки в операционной системе. Хорошая новость: скорее всего, он уже установлен! Точнее, встроен в операционку. Уважающий себя тестировщик, разумеется, работает в Linux, а почти каждый дистрибутив Linux уже идет с curl. Более того, даже Windows 10 (начиная с версии 1803) поставляется с curl.

Проверим, есть ли в системе curl.

В Linux набираем в терминале:

Если все-таки работаешь в Windows, то запускаешь cmd или, лучше, PowerShell:

Команда покажет версию curl, прикрепленные библиотеки, дату релиза, поддерживаемые протоколы и поддерживаемые функции. В Linux увидим следующее:

Если введенная команда выдала ошибку, то curl не установлен, значит его надо скачать и поставить. Еще одна хорошая новость: он бесплатный (но есть нюансы, о которых в конце). Есть версии для практически всех операционных систем, размер ехе-шника не превышает 5 Мб.

Если понадобилось ознакомиться с curl, а опыта с API нет, ситуацию облегчит тестовый httpbin-сервис, примеры с которым приведены далее в этом посте.

Примечание. С этого момента, будут приводиться исключительно «линуксовые» bash-команды, для ясности и читабельности. Если ты сидишь в Windows и примеры почему-то не работают, попробуй добавлять «.exe» после команды curl, или удалять (возможные) лишние пробелы в строках (line breaks).

Базовые опции

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

curl показывает логи HTTP-транзакций в терминале. Если нужно еще больше подробностей, то curl сохраняет все в файлы для проверки при необходимости. Для это есть функции:

GET-метод

Мы познакомились с основами, пора перейти к более серьезным вещам.

Во первых, меняем текущую папку в командной оболочке, на домашнюю папку или на рабочий стол (desktop), чтобы легче было найти выведенные из curl файлы.

Делаем первые запросы:

Если все пошло как надо, после запуска команды в прописанной на первом этапе домашней папке появятся нужные файлы. В данном случае будет выглядеть так.

В файле result.headers видим, что запрос успешно выполнен, с кодом ответа 200 (все ОК), от сервера получен таймкод ответа (timestamp), и все заголовки.

В этом файле result.json находится тело ответа. Это данные, возвращенные сервером, в красивом JSON-формате (об особенностях формата читаем здесь).

POST-метод

Отправка простого текста

Сейчас попробуем отправить обычный текст (plaintext) на сервер, с помощью метода POST.

Смотрим теперь в файл result.headers

и файл result.json

Видим, что сервер получил plaintext-сообщение с тестовым заголовком и вернул его обратно без изменений.

Параметры строки запроса

В curl поддерживается не только простой текст, но и достаточно сложные параметры типа:

Сервер, как и предыдущем примере, правильно «зеркалит» параметры, которые curl отправил.

Отправка JSON-объекта

Поставим curl-у задачу посложнее, попытаемся отправить на сервер json-файл и посмотрим что получится:

И файл result.json :

И снова видим, как curl умеет корректно отправлять контент JSON-файлов на сервер.

Эмуляция отправки значений формы

Иногда может понадобиться имитировать отправку формы. Curl умеет и это:

Видим, что сервер получил форму и правильно обработал все поля.

Отправка файла

Выше мы демонстрировали достаточно простые действия. А как насчет передачи файла? Файлы передаются таким же образом, как формы выше. Отправим изображение из текущей папки:

curl может потребоваться некоторое время чтобы отправить большой файл, а потом сервер вернет этот файл (причем закодированный в Base64). Curl должен правильно обработать такой запрос.

Другие методы

Можно попробовать «погонять» любые запросы, чтобы убедиться, как полезен бывает curl при тестировании API. В целом, обработка запросов зависит от типа API и имплементации метода.

Аутентификация

curl умеет проводить аутентификацию на сервере, когда по URL-адресу нужен ввод пользовательских имени-пароля. В этом случае httpbin получает ожидаемые имя и пароль в формате /basic-auth// и сопоставляет значения с введенными. Если эти данные не введены, получается следующее:

То есть код 401 (не прошла авторизация).

Добавим в запрос логин и пароль:

Все хорошо, авторизация прошла успешно.

Curl позволяет авторизоваться и другими методами — например, с помощью токена. Токен просто отправляется в соответствующем заголовке.

Платный тариф

Уже должно быть понятно, что curl — полезная вещь для тестировщика. Чтобы в этом мнении укрепиться, рассмотрим еще некоторые нюансы.

Распространенные инструменты тестирования API — бесплатные, но в них чаще всего бывают платными функции командной работы. Или например, запросы к социальным сетям (Вконтакте и Facebook) блокированы в бесплатном тарифе, и это один из немногих минусов в столь приятном продукте.

В других похожих инструментах бывает слишком сложный интерфейс, но это не об curl. Для простоты, рекомендую работать в VSCode. Связка VSCode c curl — идеальная.

Curl что это

На скрине слева отрендеренный markdown-документ, справа полученные result.headers и result.json, и терминал внизу, куда тестировщику приходится глядеть чаще всего.

Вопреки убеждению, бытующему в определенных кругах, curl хорошо работает не только в REST-архитектуре, но и в SOAP.

Конечно, раскрыть все нюансы в одной статье невозможно, и чтобы продолжить знакомство с такой полезной вещью как curl, не обойтись без чтения официальной документации на их сайте. Там же и примеры использования.”

Источник

Применение cURL и libcurl в php

Вступление

В этой статье будет рассказано о том, что такое cURL, как его использовать из командной строки, и о его применении в PHP.

Что такое cURL и libcurl

cURL и libcurl могут использоваться для передачи информации с использованием таких протоколов, как HTTPS, FTP, FTPS, GOPHER, LDAP, DICT, TELNET и FILE. Реализована поддержка практически всех *nix систем, а также Windows, OS/2, BeOS и некоторых других.

Необходимо понимать, что cURL не имеет ничего общего с Curl Corporation, являющейся коммерческим производителем языка программирования Curl.

Инсталляция cURL

Для работы в PHP версии 4.2.3 и выше вам необходим cURL версии не ниже 7.9.0. Для работы в PHP версии 4.3.0 и выше вам необходим cURL версии не ниже 7.9.8.

Windows

Как и любой другой дополнительный модуль, он требует проинсталлированного дистрибутива PHP. Для установки cURL скопируйте файлы php4ts.dll, ssleay32.dll, php_curl.dll, msvcrt.dll из каталога DLL в системную директорию Windows, как правило, это:

После этого необходимо раскомментировать строку

Источник

Команда Curl в Linux с примерами

Curl Command in Linux with Examples

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

Curl что это

Установка Curl

Пакет curl уже предустановлен в большинстве дистрибутивов Linux.

Если curl он не установлен, вы можете легко установить его, используя менеджер пакетов вашего дистрибутива.

Установите Curl на Ubuntu и Debian

Установите Curl на CentOS и Fedora

Как использовать Curl

Синтаксис curl команды следующий:

В простейшем виде, когда вызывается без какой-либо опции, curl отображает указанный ресурс для стандартного вывода.

Например, чтобы получить example.com домашнюю страницу, вы должны запустить:

Команда напечатает исходный код example.com домашней страницы в окне вашего терминала.

Сохранить вывод в файл

Скачать несколько файлов

В следующем примере мы загружаем iso файлы Arch Linux и Debian:

Возобновить загрузку

Например, если вы загружаете iso-файл Ubuntu 18.04 с помощью следующей команды:

и вдруг ваше соединение обрывается, вы можете возобновить загрузку с:

Получить HTTP-заголовки URL

Curl что это

Проверьте, поддерживает ли веб-сайт HTTP / 2

-s Опция указывает curl работать в тихой (Quiet) и скрыть сообщения метровые прогресса и ошибок.

Если удаленный сервер поддерживает HTTP / 2, curl выведите HTTP/2.0 200 :

В противном случае ответ таков HTTP/1.1 200 :

Следуйте перенаправлениям

По умолчанию curl не следует заголовкам HTTP Location.

Curl что это

Изменить User-Agent

Иногда при загрузке файла удаленный сервер может быть настроен на блокировку Curl User-Agent или на возврат различного содержимого в зависимости от устройства посетителя и браузера.

Например, для эмуляции Firefox 60 вы должны использовать:

Укажите максимальную скорость передачи

—limit-rate Опция позволяет ограничить скорость передачи данных. Значение может быть выражено в байтах, килобайтах с k суффиксом, мегабайтах с m суффиксом и гигабайтах с g суффиксом.

В следующем примере curl будет загружен двоичный файл Go и ограничена скорость загрузки до 1 МБ:

Эта опция полезна для предотвращения curl использования всей доступной полосы пропускания.

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

После входа в систему команда выводит список всех файлов и каталогов в домашнем каталоге пользователя.

Вы можете загрузить один файл с FTP-сервера, используя следующий синтаксис:

Отправить куки

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

По умолчанию при запросе ресурса curl файлы cookie не отправляются и не сохраняются.

Например, чтобы загрузить rpm-файл Oracle Java JDK, jdk-10.0.2_linux-x64_bin.rpm вам необходимо передать файл cookie oraclelicense со значением a :

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

Следующая команда загружает указанный ресурс через прокси-сервер через 192.168.44.1 порт 8888 :

Вывод

curl это инструмент командной строки, который позволяет передавать данные с или на удаленный хост. Это полезно для устранения неполадок, загрузки файлов и многого другого.

Примеры, показанные в этом руководстве, просты, но демонстрируют наиболее часто используемые curl параметры и призваны помочь вам понять, как curl работает команда.

Источник

PHP CURL – функции и примеры использования

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

Перед тем как приступить к рассмотрению curl хочу напомнить, что язык PHP мы с Вами уже затрагивали, например, в материале про выгрузку в Excel на PHP или возможность аутентификации на PHP, а теперь давайте поговорим о возможности посылать запросы на PHP.

Curl что это

Что такое CURL?

CURL – это библиотека функций PHP, с помощью которой можно посылать запросы, например, HTTP, из PHP скрипта. CURL поддерживает такие протоколы как HTTP, HTTPS, FTP и другие. Посылать HTTP запросы можно методами GET, POST, PUT.

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

Подключение библиотеки CURL в PHP

Для того чтобы использовать библиотеку CURL ее соответственно нужно подключить.

Примечание! В качестве примера мы будем использовать PHP 5.4.39 на Windows 7, а в качестве Web-сервера у нас будет выступать Apache 2.2.22.

Первое что нужно сделать, это скопировать библиотеки ssleay32.dll, libeay32.dll, libssh2.dll они расположены в директории с PHP, в системный каталог Windows, а именно в C:\Windows\System32.

Затем в php.ini подключить библиотеку php_curl.dll, т.е. раскомментировать следующую строку

Библиотека не подключена

Все, перезапускаем Apache, вызываем функцию phpinfo() и в случае успешного подключения у Вас должен появиться раздел curl

Curl что это

Если его нет, то это означает только одно, что библиотека не загрузилась, самая распространенная причина этого небыли скопированы вышеперечисленные DLL в системный каталог Windows.

Пример CURL – запрашиваем удаленную страницу для вывода на экран

В данном примере мы просто запросим удаленную страницу по протоколу HTTP методом GET и выведем ее содержимое на экран.

У нас имеется каталог test в нем 2 PHP файла это test_curl.php и test.php, где test_curl.php и есть скрипт где мы будем использовать curl, а test.php удаленный скрипт который мы будем вызывать. Код я подробно прокомментировал.

Код test_curl.php

Код test.php

В итоге если вы запустите test_curl.php у Вас выведется на экран надпись «Заголовок 1», можете поэкспериментировать с передачей параметров id (в данном случае 2 или 3).

Пример CURL – вызываем удаленный скрипт и получаем результат

Сейчас давайте попробуем вызвать скрипт и получить результат, для того чтобы потом его обработать, для примера давайте использовать метод POST. Названия файлов оставим такими же.

Код test_curl.php

Код test.php

И если мы запустим test_curl.php то на экран у нас выведется 111, т.е. 1.11 полученное в результате обращения к удаленному скрипту, умноженное на 100.

А теперь давайте поговорим о функциях и константах к ним.

Часто используемые функции CURL и константы

Подробнее о функциях CURL и константах к ним можете посмотреть на официальном сайте PHP — php.net

На этом все, для начинающих я думаю достаточно Удачи!

Источник

Что такое CURL?

Curl что это

Давайте разберемся с таким инструментом, который называется CURL.

Смысл у этой программы единственный: сделать какой-то запрос и получить ответ. CURL это клиент, который выполняет запросы к какому-то серверу.

На этом сайте есть документация и способы, как установить эту утилиту на вашу операционную систему.

CURL не имеет какого-то графического интерфейса и работать с этой утилитой можно либо из командной строки или установить как модуль к какому-то языку программирования, с которым мы работаем.

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

Такая вот вводная теоретическая часть и в следующих уроках давайте продолжим знакомиться с этой утилитой и посмотрим, как можно выполнять базовые запросы с ее помощью и получать какой-то результат.

Источник

Оттачиваем мастерство работы с cURL

cURL – это специальный инструмент, который предназначен для того, чтобы передавать файлы и данные синтаксисом URL. Данная технология поддерживает множество протоколов, таких как HTTP, FTP, TELNET и многие другие. Изначально cURL было разработано для того, чтобы быть инструментом командной строки. К счастью для нас, библиотека cURL поддерживается языком программирования PHP. В этой статье мы рассмотрим некоторые расширенные функций cURL, а также затронем практическое применение полученных знаний средствами PHP.

Почему cURL?

На самом деле, существует немало альтернативных способов выборки содержания веб-страницы. Во многих случаях, главным образом из-за лени, я использовал простые PHP функции вместо cURL:

Однако данные функции не имеют фактически никакой гибкости и содержат огромное количество недостатков в том, что касается обработки ошибок и т.д. Кроме того, существуют определенные задачи, которые вы просто не можете решить благодаря этим стандартным функциям: взаимодействие с cookie, аутентификация, отправка формы, загрузка файлов и т.д.

Базовая структура

Прежде чем мы двинемся дальше к более сложным примерам, давайте рассмотрим базовую структуру cURL запроса в PHP. Существует четыре основных шага, которые нужно учитывать в каждом скрипте:

Шаг #2 (то есть, вызов curl_setopt()) будем обсуждать в этой статье намного больше, чем все другие этапы, т.к. на этой стадии происходит всё самое интересное и полезное, что вам необходимо знать. В cURL существует огромное количество различных опций, которые должны быть указаны, для того чтобы иметь возможность сконфигурировать URL-запрос самым тщательным образом. Мы не будем рассматривать весь список целиком, а остановимся только на том, что я посчитаю нужным и полезным для этого урока. Всё остальное вы сможете изучить сами, если эта тема вас заинтересует.

Проверка Ошибки

Вдобавок, вы также можете использовать условные операторы для проверки выполнения операции на успех:

Тут прошу отметить для себя очень важный момент: мы должны использовать “=== false” для сравнения, вместо “== false”. Для тех, кто не в курсе, это поможет нам отличать пустой результат от булевого значения false, которое и будет указывать на ошибку.

Получение информации

Ещё одним дополнительным шагом является получение данных о cURL запросе, после того, как он был выполнен.

Возвращаемый массив содержит следующую информацию:

Обнаружение перенаправления в зависимости от браузера

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

Мы собираемся использовать опцию CURLOPT_HTTPHEADER для того, чтобы определить наши исходящие HTTP заголовки, включая название браузера пользователя и доступные языки. В конечном итоге мы сможем определить, какие сайты перенаправляют нас к разным URL.

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

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

Curl что это

Создание POST запроса на определённый URL

При формировании GET запроса передаваемые данные могут быть переданы на URL через “строку запроса”. Например, когда Вы делаете поиск в Google, критерий поиска располагаются в адресной строке нового URL:

Для того чтобы сымитировать данный запрос, вам не нужно пользоваться средствами cURL. Если лень вас одолевает окончательно, воспользуйтесь функцией “file_get_contents()”, для того чтобы получить результат.

Но дело в том, что некоторые HTML-формы отправляют POST запросы. Данные этих форм транспортируются через тело HTTP запроса, а не как в предыдущем случае. Например, если вы заполнили форму на форуме и нажали на кнопку поиска, то скорее всего будет совершён POST запрос:

Мы можем написать PHP скрипт, который может сымитировать этот вид URL запроса. Сначала давайте создадим простой файл для принятия и отображения POST данных. Назовём его post_output.php:

Затем мы создаем PHP скрипт, чтобы выполнить cURL запрос:

При запуске данного скрипта вы должны получить подобный результат:

Curl что это

Загрузка файла

Загрузка файла будет выглядеть практически так же, как и обычный POST запрос, так как все формы загрузки файла работают только с ним.

Сначала давайте создадим файл для того, чтобы сформировать его и отправить файлу upload_output.php:

А вот и код скрипта, который выполняет указанный выше функционал:

Когда вы хотите загрузить файл, все, что вам нужно сделать, так это передать его как обычную post переменную, предварительно поместив перед ней символ @. При запуске написанного скрипта вы получите следующий результат:

Curl что это

Множественный cURL

Одной из самых сильных сторон cURL является возможность создания «множественных» cURL обработчиков. Это позволяет вам открывать соединение к множеству URL одновременно и асинхронно.

В классическом варианте cURL запроса выполнение скрипта приостанавливается, и происходит ожидание завершения операции URL запроса, после чего работа скрипта может продолжиться. Если вы намереваетесь взаимодействовать с целым множеством URL, это приведёт к довольно-таки значительным затратам времени, поскольку в классическом варианте вы можете работать только с одним URL за один раз. Однако, мы можем исправить данную ситуацию, воспользовавшись специальными обработчиками.

Давайте рассмотрим пример кода, который я взял с php.net:

Идея состоит в том, что вы можете использовать множественные cURL обработчики. Используя простой цикл, вы можете отследить, какие запросы ещё не выполнились.

В этом примере есть два основных цикла. Первый цикл do-while вызывает функцию curl_multi_exec(). Эта функция не блокируемая. Она выполняется с той скоростью, с которой может, и возвращает состояние запроса. Пока возвращенное значение является константой ‘CURLM_CALL_MULTI_PERFORM’, это означает, что работа ещё не завершена (например, в данный момент происходит отправка http заголовков в URL); Именно поэтому мы продолжаем проверять это возвращаемое значение, пока не получим другой результат.

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

Проверяем ссылки в WordPress

Представьте себе блог с огромным количеством постов и сообщений, в каждом из которых есть ссылки на внешние интернет ресурсы. Некоторые из этих ссылок по различным причинам могли бы уже быть «мертвыми». Возможно, страница была удалена или сайт вовсе не работает.

Мы собираемся создать скрипт, который проанализирует все ссылки и найдёт незагружающиеся веб-сайты и страницы 404, после чего предоставит нам подробнейший отчёт.

Сразу же скажу, что это не пример создания плагина для WordPress. Это всего на всего хороший полигон для наших испытаний.

Давайте же наконец начнём. Сначала мы должны сделать выборку всех ссылок из базы данных:

Сначала мы формируем конфигурационные данные для взаимодействия с базой данных, далее пишем список доменов, которые не будут участвовать в проверке ($excluded_domains). Также мы определяем число, характеризующее количество максимальных одновременных соединений, которые мы будем использовать в нашем скрипте ($max_connections). Затем мы присоединяемся к базе данных, выбираем посты, которые содержат ссылки, и накапливаем их в массив ($url_list).

Следующий код немного сложен, так что разберитесь в нём от начала до конца:

Тут я попытаюсь изложить всё по полочкам. Числа в списке соответствуют числам в комментарии.

Я использовал данный скрипт на своем блоге (с некоторыми неработающими ссылками, которые добавил нарочно для того, чтобы протестировать его работу) и получил следующий результат:

Curl что это

В моём случае, скрипту потребовалось чуть меньше чем 2 секунды, чтобы пробежаться по 40 URL. Увеличение производительности является существенным при работе с еще большим количеством URL адресов. Если вы открываете десять соединений одновременно, то скрипт может выполниться в десять раз быстрее.

Пару слов о других полезных опциях cURL

HTTP Аутентификация

Если на URL адресе есть HTTP аутентификация, то вы без труда можете воспользоваться следующим скриптом:

FTP загрузка

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

Используем Прокси

Вы можете выполнить свой URL запрос через прокси:

Функции обратного вызова

Также существует возможность указать функцию, которая будет срабатывать ещё до завершения работы cURL запроса. Например, пока содержание ответа загружается, вы можете начать использовать данные, не дожидаясь полной загрузки.

Подобная функция ДОЛЖНА возвращать длину строки, что является обязательным требованием.

Заключение

Сегодня мы познакомились с тем, как можно применить библиотеку cURL в своих корыстных целях. Я надеюсь, что вам понравилась данная статья.

Спасибо! Удачного дня!

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.net.tutsplus.com/tutorials/php/techniques-and-resources-for-mastering-curl/
Перевел: Станислав Протасевич
Урок создан: 5 Июля 2011
Просмотров: 169251
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Curl что это

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Curl что это

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Curl что это

Совет: отправка информации в Google Analytics через API

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

Curl что это

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

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

Источник

cURL PHP: что это такое и как им пользоваться?

В этой записи, я покажу на примерах как пользоваться cURL, где его применяют и почему вам стоит в нём разобраться, если вы еще этого не сделали.

Где используют cURL PHP? Его можно применять для работы с API других сайтов, выполнять простые HTTP запросы и более сложные, например загрузок файлов с FTP.

Мы в этой записи, посмотрим на простые GET / POST запросы и как их делать с помощь.

Важно знать

Настройка запроса

Настройки выше используются для изменения параметров отправки запроса. Когда вы не задали никаких параметров для cURL, то у него «появляется куча вопросов». Например: какой запрос вы хотите выполнить ( GET / POST )? Сколько времени выделить на запрос? Куда он должен выполнять и другие подобные.

Другие используемые функции

Функции выше используются для создания запроса, его запуска и закрытия.

PHP cURL GET

Для начала сделаем GET запрос.

PHP cURL POST

Процедура отправки этого запроса почти идентична тому, что было в GET за исключением двух дополнительных строчек. С помощью CURLOPT_POST мы говорим cURL о том, что хотим отправить POST запрос и затем прописываем параметры для отправки с CURLOPT_POSTFIELDS в виде массива (сначала имя параметра и затем его значение).

В случае, если вы хотите зарегистрироваться на сайте куда вы отправляете запрос и на нем из полей только три, допустим: first_name (имя), last_name (фамилия), email (почта), тогда поля у вас будут выглядеть следующим образом:

Обратите внимание на то, что если на форме будет стоять капча (проверка на ботов), тогда зарегистрироваться автоматически не получится.

Похожие функции

Для отправки GET запросов так же подойдет file_get_contents() который делает запрос и возвращает то, что удалось получить.

Чем он плох?

Чем он хорош?

Библиотеки

Curl что это

Чтобы не создавать новый велосипед, лучше всего воспользоваться готовым решением в виде Guzzle.

Я вкратце опишу что это и с чем его едят:

Guzzle был создан для того, чтобы упростить процесс отправки HTTP запросов. Зачастую используется для отправки запросов к API и чему угодно в целом.

У вас есть API, которое вы недавно разработали и пришло время начать с ним работать. Вы могли бы написать свою библиотеку или даже мини класс для работы с ним, но (1) у вас ушло бы не мало времени, а если бы и мало, то вероятнее всего решение получилось бы не самое лучшее, (2) его нужно постоянно поддерживать и улучшать. В таком случае, лучше использовать готовое решение, которое поддерживается большим сообществом и Guzzle репозитория уже насчитывает 12 тыс. звезд, что очень похвально.

Вы можете спросить: Зачем это нужно, если уже существует куча библиотек?

Guzzle собрал все самое лучшее в себе, сделать это еще лучше и теперь это самая популярная PHP библиотека для работы с HTTP запросами. Она и вправду крутая, посмотрите только на простоту запроса:

Круто? Мне очень нравится.

Документация у Guzzle достаточно обширная, каждый вариант не распишешь, да и нужно для этого целый пост, который я в скором времени обязательно напишу 🙂

Послесловие

Если у вас остались какие-либо вопросы пишите их ниже к этому посту и я буду рад вам помочь. Так же, если у вас есть какие-то поправки по статье и вы увидели где-то ошибку или хотите добавить что-то буду рад вас выслушать.

Источник

Техники для использования cURL

cURL это инструмент для передачи файлов и данных с синтаксисом URL-адресов, поддерживающий множество протоколов, включая HTTP, FTP, TELNET и т. д. Первоначально cURL был разработан как инструмент командной строки. К счастью для нас, библиотека cURL также поддерживается PHP. В этой статье мы рассмотрим некоторые дополнительные возможности cURL и способы их использования в наших PHP-скриптах.

Почему cURL?

Это правда, что есть другие способы получения содержимого веб-страницы. Много раз, в основном из-за лени, я просто использовал простые функции PHP вместо cURL:

Однако они практически не обладают гибкостью и не имеют достаточной обработки ошибок. Кроме того, есть определенные задачи, которые вы просто не можете решить, например, работа с куки-файлами, аутентификация, записи в форме, загрузка файлов и т. д.

Базовая структура

Прежде чем перейти к более сложным примерам, давайте рассмотрим базовую структуру запроса cURL в PHP. Существуют четыре основных шага:

Шаг #2 (т.е. вызовы curl_setopt()) будет большой частью этой статьи, потому что именно там происходит вся магия. Существует длинный список опций cURL, которые можно установить, которые могут подробно настроить запрос URL. Может быть, трудно пройти весь список и переварить все сразу. Поэтому сегодня мы собираемся использовать некоторые из наиболее распространенных и полезных вариантов в различных примерах кода.

Проверка на наличие ошибок

При желании вы также можете добавить проверку ошибок:

Обратите внимание, что для сравнения нужно использовать «=== FALSE» вместо «== FALSE». Поскольку нам нужно отличать пустой вывод от логического значения FALSE, что указывает на ошибку.

Получение информации

Следующая информация включена в возвращаемый массив:

Обнаружение перенаправления в браузере

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

Мы собираемся использовать параметр CURLOPT_HTTPHEADER для установки исходящих HTTP-заголовков, включая строку user_agent и принятые языки. Наконец, мы проверим, пытаются ли эти веб-сайты перенаправить нас на разные URL-адреса.

Сначала у нас есть набор URL-адресов для тестирования, а затем набор настроек браузера для проверки каждого из этих URL-адресов. Затем мы просматриваем эти тестовые примеры и делаем запрос cURL для каждого.

Когда вы запускаете этот скрипт, вы должны получить такой вывод:

Curl что этоCurl что это Curl что это

Отправка POST на URL-адрес

По запросу GET данные могут быть отправлены по URL-адресу через строку запроса. Например, когда вы выполняете поиск на Google, поиск термина расположен в части строки запроса URL-адреса:

Вам может не понадобиться cURL, чтобы имитировать это в веб-скрипте. Вы можете просто быть ленивым и натравить на этот url «file_get_contents()» для получения результатов.

Но некоторые HTML-формы отправляются методом POST. Когда эти формы принимаются через браузер, данные передаются через тело HTTP-запроса, вместо строки запроса. Например, если вы выполняете поиск на форумах CodeIgniter, вы будете посылать ваш поисковый запрос POST методом:

Мы можем написать PHP-скрипт для имитации такого типа URL-запроса. Сначала давайте создадим простой файл для приема и отображения данных POST. Назовем его post_output.php:

Далее создадим PHP-скрипт для выполнения cURL запроса:

Когда вы запускаете этот скрипт, вы должны получить такой вывод:

Curl что это

Загрузка файла

Загрузка файлов работает очень похоже на предыдущий POST пример, так как все формы загрузки файлов работают с методом POST.

Сначала давайте создадим файл для получения запроса и назовем его upload_output.php:

И вот скрипт выполнения загрузки файлов:

Когда вы хотите загрузить файл, все, что вам нужно сделать, это передать путь к файлу, как переменную post, и поставить перед ним символ @. Теперь, когда вы запускаете этот скрипт, вы должны получить такой вывод:

Curl что этоCurl что это Curl что это

Multi cURL

Одной из наиболее продвинутых функций cURL является возможность создания «multi» cURL-дескриптора (набор cURL-дескрипторов). Это позволяет одновременно открывать соединения с несколькими URL-адресами и асинхронно.

При регулярном запросе cURL выполнение скрипта останавливается и ожидает завершения запроса URL-адреса до его продолжения. Если вы намереваетесь обращаться на несколько URL-адресов, это может занять много времени, так как вы можете запрашивать только один URL за раз. Мы можем преодолеть это ограничение, используя мульти дескриптор.

Идея заключается в том, что можно открыть несколько cURL дескрипторов и присвоить их одному мульти дескриптору. Затем вы можете ждать их, чтобы закончить выполнение в цикле.

В этом примере существует два основных цикла. Первый цикл do-while повторно вызывает curl_multi_exec(). Эта функция не блокирует. Он выполняется как можно меньше и возвращает значение статуса. Пока возвращаемое значение является константой «CURLM_CALL_MULTI_PERFORM», это означает, что есть еще более оперативная работа (например, отправка заголовков HTTP в URL-адреса.) Поэтому мы продолжаем вызывать его, пока возвращаемое значение не является чем-то другим.

Давайте посмотрим, можем ли мы сами создать рабочий пример, который имеет практическую цель.

Проверка ссылок WordPress

Представьте себе блог с множеством постов, содержащих ссылки на внешние сайты. Некоторые из этих ссылок могут стать «битыми» через некоторое время по различным причинам. Возможно, страница более не существует, или весь сайт исчез.

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

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

Так что давайте начнем. Сначала нам нужно извлечь ссылки из базы данных:

Сначала у нас есть конфигурация базы данных, за которой следует массив имен доменов, которые мы будем игнорировать ($excluded_domains). Также мы устанавливаем число для максимальных одновременных соединений, которые мы будем использовать позже ($max_connections). Затем мы подключаемся к базе данных, выбираем посты, содержащие ссылки, и собираем их в массив ($url_list).

Следующий код может быть немного сложным, поэтому я попытаюсь объяснить его небольшими шагами.

И вот объяснение для кода выше. Номера в списке соответствуют номерам в комментариях кода.

Я запустил скрипт в своем блоге (с некоторыми сломанными ссылками, которые были добавлены специально, для тестирования), и вот как это выглядело:

Curl что этоCurl что это Curl что это

Это заняло всего менее 2 секунд, чтобы пройти около 40 URL-адресов. Повышение производительности имеет большое значение при работе с еще большими наборами URL-адресов. Если вы одновременно открываете десять подключений, он может работать до десяти раз быстрее. Также вы можете просто использовать неблокирующий multi дескриптор curl, чтобы сделать URL-запросы без срыва вашего веб-сценария.

Некоторые другие полезные опции cURL

Аутентификация HTTP

Если на URL-адресе есть аутентификация на основе HTTP, вы можете использовать это:

Загрузка FTP

PHP имеет FTP-библиотеку, но вы также можете использовать cURL:

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

Можно выполнить ваш URL-запрос через прокси-сервер:

Функции обратного вызова

При запросе URL-адреса можно для cURL определить функцию обратного вызова, прежде чем запрос будет завершен. Например, по мере загрузки содержимого ответа вы можете начать использовать данные, не дожидаясь завершения всей загрузки.

Функция обратного вызова ДОЛЖНА вернуть длину строки, что является обязательным условием для правильной работы.

Когда URL-адрес выбирается, каждый раз, когда пакет данных принимается, вызывается функция обратного вызова.

Заключение

Сегодня мы изучили мощь и гибкость библиотеки cURL. Надеюсь, эта статья вам понравилась и была полезной. В следующий раз, когда вам нужно сделать запрос URL-адреса в своем веб-приложении, рассмотрите возможность использования cURL.

Спасибо и хорошего дня!

Написать Plus учебник

Обратите внимание, что фактическая компенсация будет зависеть от качества окончательного учебника и скринкаста.

Источник

Что Такое Curl. Как работает команда Curl: определение и примеры

Что такое curl?

На самом деле, curl – это больше чем просто утилита командной строки для Linux или Windows. Это набор библиотек, в которых реализуются базовые возможности работы с URL страницами и передачи файлов. Библиотека поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, а также POP3, IMAP и SMTP. Она отлично подходит для имитации действий пользователя на страницах и других операций с URL адресами.

Поддержка библиотеки curl была добавлена в множество различных языков программирования и платформ. Утилита curl – это независимая обвертка для этой библиотеки. Именно на этой утилите мы и остановимся в этой статье.

Команда curl

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

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

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

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

Команда Curl для Работы с Файлами

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

Приведённая выше команда сохранит файл как testfile.tar.gz.

А эта команда сохранит его как newtestfile.tar.gz.

Если по какой-либо причине загрузка будет прервана, вы можете возобновить её с помощью следующей команды:

Curl также позволяет загрузить несколько файлов одновременно. Пример:

Если вы хотите загрузить несколько файлов с нескольких URL, перечислите их все в файле. Команды Curl могут быть объединены с xargs для загрузки различных URL-адресов.

Например, если у нас есть файл allUrls.txt, который содержит список всех URL-адресов для загрузки, то приведённый ниже пример выполнит загрузку всех файлов с этих URL.

Curl также можно использовать c прокси-сервером. Если вы находитесь за прокси-сервером, прослушивающим порт 8090 на sampleproxy.com, загрузите файлы, как показано ниже:

В приведённом выше примере вы можете выбросить -U username:password, если прокси-сервер не требует метода аутентификации.

Типичный HTTP-запрос всегда содержит заголовок. Заголовок HTTP отправляет дополнительную информацию об удалённом веб-сервере вместе с фактическим запросом. С помощью инструментов разработчика в браузере вы можете посмотреть сведения о заголовке, а проверить их можно с помощью команды curl.

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

Используя curl, вы можете сделать запрос GET и POST. Запрос GET будет выглядеть следующим образом:

А вот пример запроса POST:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp

Здесь text=Hello — это параметр запроса POST. Такое поведение похоже на HTML-формы.

Вы также можете указать несколько методов HTTP в одной команде curl. Сделайте это, используя опцию –next, например:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp –next https://myDomain.com/displayResult.jsp

Команда содержит запрос POST, за которым следует запрос GET.

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

“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”

Вы можете изменить дефолтную информацию об агенте пользователя, используя следующую команду:

Теперь вывод будет выглядеть так:

“GET / HTTP/1.1” 200 “_” ”My new Browser”

Команда Curl и Cookies

Утилиту можно использовать для проверки того, какие файлы cookie загружаются по URL. Допустим вы зашли на https://www.samplewebsite.com, вы можете вывести и сохранить файлы cookie в файл, а затем получить к ним доступ, используя команду cat или редактор Vim.

Вот пример такой команды:

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

curl –cookie Mycookies.txt https://www. samplewebsite.com

Curl и FTP

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

В приведённой выше команде ftp://sampleftpserver — это FTP-сервер, который принимает соединения. Вы можете не указывать имя пользователя и пароль для анонимных FTP-соединений. Введите команду и посмотрите, как заполняется индикатор выполнения.

Вы также можете загружать файлы с помощью этой команды:

Опять же таки, мы можем пропустить имя пользователя и пароль для анонимных FTP-соединений.

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

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

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

Основной Синтаксис Команды Curl

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

curl [OPTIONS] [URL]

Самый простой пример использования Curl — для отображения содержимого страницы. Приведённая ниже команда отобразит домашнюю страницу testdomain.com.

Эта команда отобразит полный исходный код домашней страницы домена. Если протокол не указан, Curl интерпретирует его как HTTP.

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

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

Загрузка файлов

Самая частая задача – это загрузка файлов linux. Скачать файл очень просто. Для этого достаточно передать утилите в параметрах имя файла или html страницы:

Но тут вас ждет одна неожиданность, все содержимое файла будет отправлено на стандартный вывод. Чтобы записать его в какой-либо файл используйте:

Если загрузка была неожиданно прервана, вы можете ее возобновить:

Если нужно, одной командой можно скачать несколько файлов:

Еще одна вещь, которая может быть полезной администратору – это загрузка файла, только если он был изменен:

Данная команда скачает файл, только если он был изменен после 21 декабря 2017.

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

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

Или проверим отправку файла по HTTP, для этого существует специальный сервис:

В ответе утилита сообщит где вы можете найти загруженный файл.

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

Здесь мы передаем формой поле password, с типом обычный текст, точно так же вы можете передать несколько параметров.

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

Затем можно отправить cookie curl обратно:

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

Аутентификация curl

Точно так же будет выполняться аутентификация на серверах HTTP.

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

Примеры использования cURL в PHP

GET запрос

$ch = curl_init(‘https://vk.com’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$html = curl_exec($ch);
curl_close($ch);

POST запрос

$array = array(
‘login’ => ‘admin’,
‘password’ => ‘1234’
);

// Или предать массив строкой:
// curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($array, ”, ‘&’));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$html = curl_exec($ch);
curl_close($ch);

file_get_contents() так же умеет отправлять POST запросы:

PUT запрос

$ch = curl_init(‘https://cloud-api.yandex.net/v1/disk/’);
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$html = curl_exec($ch);
curl_close($ch);

DELETE запрос

HTTP-метод DELETE используется в REST API для удаления объектов.

$ch = curl_init(‘http://site.com/delete/999’);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘DELETE’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_exec($ch);
curl_close($ch);PHP5

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

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

$ch = curl_init(‘http://yandex.ru’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$html = curl_exec($ch);
curl_close($ch);

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

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

С PHP 5.5 такой метод загрузки файлов вызывает ошибку, поэтому следует применять CURLFile.

Также через curl можно отправить сразу несколько файлов:

Еще файлы можно отправить методом PUT, например так загружаются файлы в REST API Яндекс Диска.

8 примеров использования cURL вместе с PHP

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

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

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

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

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

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

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

3. Получаем последний статус Twitter

С помощью PHP и cURL очень просто получить статус определённого пользователя. Данную информацию можно выводить в блоге.

Использовать функцию очень просто:

4. Twitter: проверяем отношения между двумя пользователями

Если вам нужно узнать, читает ли ваши твиты определенный пользователь, то можно задействовать API Twitter. Данный скрипт выводит true, если два пользователя, указанные на строчках 17 и 18, находятся в дружеских отношениях на Twitter. В противном случае возвращается false.

/* Персоны для проверки */
$person1 = ‘phpsnippets’;
$person2 = ‘catswhocode’;

/* Отправляем запрос на twitter */
$url = ‘https://api.twitter.com/1/friendships/exist’;
$format = ‘xml’;

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

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

function getImages($html) <
$matches = array();
$regex = ‘

while ($i 6. Конвертируем валюту с помощью cURl и Google

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

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

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

$ok = curl_exec($ch);
curl_close($ch);
$head = ob_get_contents();
ob_end_clean();

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

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

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

// URL содержит большую часть нужной информации
$url = “ftp://username:password@mydomain.com:21/path/to/new/file”;

// Устанавливаем режим ASCII (то есть – файл текстовой)
curl_setopt($ch, CURLOPT_FTPASCII, 1);

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

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.catswhocode.com/blog/amazing-things-to-do-with-php-and-curl
Перевел: Сергей Фастунов
Урок создан: 14 Февраля 2012
Просмотров: 124011
Правила перепечатки

5 последних уроков рубрики “PHP”

Совет: отправка информации в Google Analytics через API

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

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

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

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *