PHP cURL основы и примеры

PHP cURL основы и примеры

650

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

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

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

Например, получим данные с сайта:

$ch = curl_init(); //инициализация
//параметры соединения
curl_setopt($ch, CURLOPT_URL, "http://сайт.ru");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch); //получаем HTML сайта
echo $output;
curl_close($ch); //освобождаем память

Здесь:

  • CURLOPT_URL - сайт, с которого берем данные
  • CURLOPT_RETURNTRANSFER - указываем, чтобы нам вернулось содержимое после запроса
  • $output - получаем весь контент

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

Пример отправки POST данных через cURL

Пусть на сайте-доноре есть php файл msg.php, в котором есть поля формы: name и text. Сам файл служит для отправки сообщений от пользователей админу.

Отправим не заходя на сайт-донор сообщение админу

$ch = curl_init(); //инициализация
curl_setopt($curl, CURLOPT_URL, 'http://сайт.ru/msg.php');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "name=Алексей&text=Вам бы лучше капчу поставить!");
$out = curl_exec($curl);
echo $out;
curl_close($ch);

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

На заметку - обязательно ставьте защиту от cUrl действий, например в авторизации или отправке сообщений. Во многих случаях спасет обычная капча. Но я также рекомендую создавать невидимое поле на jQuery и в нем передавать какой-нибудь параметр заполненный скриптом. А php обработчике проверять на его наличие. Дело в том, что большинство ботов не умеют работать с jQuery. Это неплохо повысит вашу защиту.

 

 

| | PHP cURL основы и примеры | cURL работает с http протоколом и позволяет выполнять множество операций, как со своими, так и с чужими сайтами. Например: удаленно выполнить авториза | http://blogprogram.ru/wp-content/uploads/2017/04/650-131x131.jpg