Урок по curl основи використання і пара корисних трюків (частина перша)

Hostland.RU вже більше 10 років є професіоналом у сфері надання віртуального хостингу і цілого ряду супутніх послуг. Ми відповідаємо за якість нашої роботи.

Для чого потрібна cURL

  • cURL відмінно підходить для імітації дій користувача в браузері.
  • cURL зручний для отримання даних з веб-сайтів в командному рядку.

Ще один практичний приклад: ми хочемо реалізувати показ загальної статистики для кількох сайтів. Якщо використовувати cURL, то це стає цілком тривіальним завданням: за допомогою cURL ми проходимо аутентифікацію на сервісі збору статистики (якщо це потрібно), потім (знову ж командами cURL) отримуємо необхідні сторінки, Парс потрібні нам дані; процедура повторюється для всіх наших сайтів, потім ми складаємо і виводимо кінцевий результат.

Тобто випадки використання cURL цілком реальні, хоча, в більшості, cURL потрібна програмістам, які використовують її для своїх програм.

cURL в PHP і командному рядку

Ми можемо використовувати cURL двома основними способами: в скриптах PHP і в командному рядку.

Щоб включити cURL в PHP на сервері, необхідно в файлі php.ini раскоментіровать рядок

Тобто логін і хеш пароля.

При спробі отримати доступ до запаролений папці, в браузері відобразитися приблизно таке вікно:

Урок по curl основи використання і пара корисних трюків (частина перша)

HTTP аутентифікація - це той випадок, коли ми вводимо логін і пароль в форму на сайті. Саме така аутентифікація використовується при вході в пошту, на форуми і т. Д.

Урок по curl основи використання і пара корисних трюків (частина перша)

Базова аутентифікація cURL (PHP)

Пробуємо наш первісний скрипт:

Буквально ще декількома командами можна додати:

  • розпакування архіву в зазначений каталог;
  • запуск оновлень КонсультантПлюс (це поновлення для нього);
  • можна реалізувати перевірку - чи було вже завантажено останнім доступне оновлення або з'явилося нове;
  • додати це все в Cron для щоденних оновлень.

HTTP аутентифікація cURL

HTTP аутентифікація cURL в PHP

Нам потрібно знати:

Іноді цих даних виявляється недостатньо. Давайте розберемося.

В скрипті новий рядок

curl_setopt ($ ch, CURLOPT_POSTFIELDS, 'LOGIN_USER = adminLOGIN_PASSWD = qwerasdfzxcv');

Тут curl_setopt - вже знайома нам функція по встановленню опцій для cURL, CURLOPT_POSTFIELDS - ця ім'я опції, яку ми встановлюємо. CURLOPT_POSTFIELDS містить всі дані, які передаються методом POST. Ну і сама рядок LOGIN_USER = adminLOGIN_PASSWD = qwerasdfzxcv - це ті самі дані, які ми передаємо.

Я використовую Wireshark. Ця програма призначена для сніфінга (перехоплення) трафіку. І саме в ній дуже зручно дивитися, що ж саме передається на сайт.

Урок по curl основи використання і пара корисних трюків (частина перша)

Але, насправді, всі вони зводяться до методів POST або GET. Щоб зрозуміти, що саме відправляється, можна зберегти сторінку з формою собі на диск і на кнопку відправки повісити функцію показу сформованих для відправки даних. Або ще простіше - як я, Wireshark'ом.

Якщо дані правильні, а аутентифікація не відбувається, то потрібно копати в наступних напрямках:

  • задати вірну рядок реферера
  • задати «правильну» рядок користувацького агента.

Все це можна зробити базовими методами cURL, але я не буду на цьому зупинятися. Урок вийшов і без того великим, але ж я ще хотів показати пару трюків з cURL.

Тіпси та Трікс cURL

cURL і отримання кукіз крім CURLOPT_COOKIEJAR

1) Не використовуємо CURLOPT_FOLLOWLOCATION

2) Використовуємо curl_setopt ($ ch, CURLOPT_HEADER, 1)

3) Збираємо кукіз з заголовка header приблизно так:

Неділю на 6:03 ПП