Хостинг з cURL
14:15, 29.11.2022
Якщо ви вирішили автоматизувати передачу даних у Мережі з використанням різноманітних протоколів, ця стаття допоможе. Це програмне забезпечення працює з протоколами:
- FTP;
- FTPS;
- HTTP;
- HTTPS;
- TFTP;
- SCP;
- SFTP;
- Telnet;
- DICT;
- LDAP;
- POP3;
- IMAP;
- SMTP.
Працювати з cURL можна тільки через командний рядок, оскільки будь-якого користувацького інтерфейсу тут не передбачено. Також можливий варіант використання як додаткового модуля для будь-якої мови програмування, з якою ви працюєте.
Особливості бібліотеки cURL
Утиліта доступна для всіх сучасних операційних систем, заснованих на Unix. Цю команду застосовують для отримання даних за заданим URL або передачі даних через протоколи, які ми перерахували вище. Для роботи утиліти потрібна бібліотека API Libcurl – вона необхідна для забезпечення можливості передавання файлів численним додаткам.
Libcurl є надійною і портативною бібліотекою з відкритим вихідним кодом, яку легко можна інтегрувати в будь-який додаток. Саму команду cURL можна використовувати на більшості дистрибутивів Linux для таких цілей:
- Тестування API.
- Використання всередині shell-скриптів.
- Забезпечення доступу до файлів без браузера.
При цьому пакет можна використовувати як у комерційних, так і в некомерційних цілях – вихідний код відкритий і ПЗ поширюється вільно.
Встановлення cURL
Користувачам Windows попередньо потрібно встановити модуль PHP, оскільки без нього утиліта не працюватиме. Далі, щоб встановити cURL, необхідно завантажити інсталятор з офіційного сайту розробників. Просто виберіть відповідну версію для вашої OS і потім встановіть її.
Для будь-яких інших операційних систем ви також можете знайти інсталятор у відповідному списку. Тут представлено версії для Linux, FreeBSD, DOS, Debian, Ubuntu, Fedora і безлічі інших операційних систем – як безкоштовних, так і тих, що націлені на корпоративне використання.
Як працювати з cURL
Існує безліч команд, які розуміє ця утиліта. Їх настільки багато, що висвітлити їх усі ми не можемо суто фізично – для цього буде потрібно написати докладну багатосторінкову документацію. Її знайти ви можете на профільних форумах або на сайті розробників, ми ж пройдемося по синтаксису. Він досить простий і має такий вигляд:
$ curl опциії посилання
Що таке посилання – і так очевидно, а ось можливих опцій буває досить багато:
- -# – показати прогрес завантаження;
- -0 – перейти на протокол HTTP 1.0;
- -1 – ініціює використання протоколу шифрування tlsv1;
- -2 – перехід на sslv2;
- -3 – перехід на sslv3;
- -4 – перехід на ipv4;
- -6 – перехід на ipv6;
- -A – вказати свій USER_AGENT;
- -b – збереження cookie у вигляді файлу;
- -c – передати cookies на сервер із файлу;
- -C – відновити завантаження файлу з місця розриву або зазначеного зміщення;
- -m – граничний час очікування відповіді сервера;
- -d – передати дані методом POST;
- -D – зберігає заголовки, які повернув сервер, у файл;
- -e – задати поле Referer-uri, вказує з якого сайту прийшов користувач;
- -E – ініціює використання зовнішнього сертифіката SSL;
- -f – забороняє виводити повідомлення типу Error;
- -F – передати дані у вигляді форми;
- -G – активація цієї опції ініціює передачу всіх даних, зазначених в опції -d, методом GET;
- -H – відправити заголовки на server;
- -I – отримувати HTTP заголовок з ігноруванням вмісту сторінки;
- -j – прочитати і відправити cookie з файлу;
- -J – видаляє заголовок із запиту;
- -L – приймання та обробка перенаправлень;
- -s – показати максимальну кількість перенаправлень за допомогою Location;
- -o – виводити контент сторінки у файл;
- -O – зберігати контент у файл з іменем сторінки або файлу на сервері;
- -p – використовувати проксі;
- --proto – дає змогу задати бажаний протокол передавання даних;
- -R – зберігати час останньої зміни видаленого файлу;
- -s – мінімізувати виведення відомостей про помилки;
- -S – показувати повідомлення про помилки;
- -T – вивантажити файл на сервер;
- -v – максимально докладний висновок;
- -y – мінімізувати швидкість завантаження;
- -Y – максимізувати швидкість завантаження;
- -V – показати версію.
Як бачите, синтаксис cURL чутливий до регістру, тож будьте уважні.
Приклади використання cURL у PHP
Найпростіше за допомогою Libcurl реалізувати генерацію POST-запитів. Для цього необхідно лише ініціювати сесію cURL, встановити необхідні опції, а потім виконати запит. Ось простий і наочний приклад:
<?php // Пошук книг на сервері amazon.com $url = "http://www.amazon.com/exec/obidos/search-handle-form/002-5640957-2809605"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); // set url to post to curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s curl_setopt($ch, CURLOPT_POST, 1); // set POST method curl_setopt($ch, CURLOPT_POSTFIELDS, "url=index%3Dbooks&field-keywords=PHP+MYSQL"); // add POST fields $result = curl_exec($ch); // run the whole process curl_close($ch); echo $result; ?> <?php // HTTP authentication $url = "http://www.example.com/protected/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword"); $result = curl_exec($ch); curl_close($ch); echo $result; ?> <?PHP // FTP this script to a server $fp = fopen(__FILE__, "r"); $url = "ftp://username:password@mydomain.com:21/path/to/newfile.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_UPLOAD, 1); curl_setopt($ch, CURLOPT_INFILE, $fp); curl_setopt($ch, CURLOPT_FTPASCII, 1); curl_setopt($ch, CURLOPT_INFILESIZE, filesize(__FILE__)); $result = curl_exec($ch); curl_close($ch); ?>
Щоб краще розібратися, як працює cURL, рекомендуємо уважно вивчити офіційну документацію від розробників, або звернутися до досвідчених системних адміністраторів за роз'ясненнями. На цьому ми закінчуємо наш матеріал і дякуємо за увагу!