Веб-майстер як створити свій сайт

Бібліотека CURL (Client URL Library)

PHP підтримує бібліотеку libcurl. створену Даніелем Стенберг (Daniel Stenberg), що дозволяє здійснювати підключення і взаємодію з різними типами серверів, використовуючи найрізноманітніші протоколи. В даний час libcurl підтримує протоколи http. https. ftp. gopher. telnet. dict. file. ldap. Також бібліотека підтримує сертифікати HTTPS, методи HTTP POST і PUT, завантаження з FTP і HTTP, проксі, cookies та аутентифікацію користувача з паролем.







Схема використання функцій проста. Спочатку за допомогою функції curl_ init () инициализируется сесія CURL. При цьому встановлюються параметри передачі, з якими вона буде виконана функцією curl_exec (). після чого сесія може бути завершена за допомогою функції curl_close (). Нижче наведено приклад, який одержує домашню сторінку PHP і зберігає її у файлі.

curl_init. Відкриття сеансу CURL

int curl_init ([string url])

Функція ініціалізує нову сесію і повертає дескриптор CURL, який потім буде використовуватися функціями curl_setopt (). curl_exec () і curl_close (). У функції можна вказати необов'язковий аргумент url. в подальшому використовується як параметр CURLOPT_URL. Втім, цей параметр можна також встановити функцією curl_setopt ().

Приклад використання функції:

curl_setopt. Як встановити опції повідомлення CURL

bool curl_setopt (int ch, string option, mixed value)

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

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







  • CURLOPT_INFILESIZE - встановити очікуваний розмір одержуваного файлу при його завантаженні на віддалений сервер.
  • CURLOPT_VERBOSE - при ненульове значення буде повідомлятися всі, що відбувається під час сесії.
  • CURLOPT_HEADER - при ненульове значення заголовок буде включатися в вміст виведення.
  • CURLOPT_NOPROGRESS - при ненульове значення блокується відображення індикатора ходу виконання операцій передачі. За замовчуванням цей параметр встановлений, і його слід змінити, лише для цілей налагодження.
  • CURLOPT_NOBODY - при ненульове значення вміст тега BODY не включатиметься в висновок.
  • CURLOPT_FAILONERROR - при ненульове значення буде відбуватися звичайне завершення сценарію PHP, якщо буде отримано код повернення HTTP із значенням більшим, ніж 300. За замовчуванням відбувається нормальний повернення в сценарій з ігноруванням коду, що викликав помилку.
  • CURLOPT_UPLOAD - при ненульове значення відбувається підготовка PHP для завантаження.
  • CURLOPT_POST - при ненульове значення PHP виконує звичайний метод HTTP POST. Тип POST матиме нормальний вигляд application / x-www-from-urlencoded.
  • CURLOPT_FTPLISTONLY - при ненульове значення PHP буде виводити імена файлів тільки в FTP.
  • CURLOPT_FTPAPPEND - при ненульове значення PHP буде здійснювати додавання в кінець існуючого віддаленого FTP-файлу, замість його перезапису.
  • CURLOPT_NETRC - при ненульове значення PHP буде переглядати файл

Для наступних можливих значень аргументу option відповідне значення value має зазначатися в строкове значення.

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

  • CURLOPT_FILE - вказується файл, в якому слід зберігати отримані дані. За замовчуванням використовується стандартний потік виведення stdout.
  • CURLOPT_INFILE - задається файл, з якого слід отримувати дані для передачі.
  • CURLOPT_WRITEHEADER - вказується файл для запису вмісту заголовків.
  • CURLOPT_STDERR - вказується файл для збереження результатів помилок замість використовувався раніше потоку stderr.

curl_exec. Виконання CURL-сесії

bool curl_exec (int ch)

Функція виконує підготовлену сесію. Ця функція повинна викликатися після ініціалізації сесії CURL і після того, як всі параметри сесії були встановлені.

curl_close. закриття сеансу

void curl_close (int ch)







Схожі статті