Используем CURL (php) часть 2 (отправка GET и POST запросов)

В первой части был расмотрен простой пример запроса страницы.
В этой будет рассмотрено использование библиотеки CURL для отправки GET и POST запросов.
Изучаем curl

Пример использования GET запроса

< ?php
  1.   $ch = curl_init();
  2.    //GET запрос указывается в строке URL
  3.   curl_setopt($ch, CURLOPT_URL, 'http://blog.yousoft.ru/?s=CURL');
  4.   curl_setopt($ch, CURLOPT_HEADER, false);
  5.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  6.   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  7.   curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://blog.yousoft.ru)');
  8.   $data = curl_exec($ch);
  9.   curl_close($ch);
  10. ?>

Посылка GET запроса ничем не отличается от получения страницы. Важно заметить, что строка запроса формируется следующим образом: http://blog.yousoft.ru/index.php?name1=value1&name2=value2&name3=value3. Где http://blog.yousoft.ru/index.php – адрес страницы, nameX – название переменной, valueX – значение переменной.

Пример использования POST запроса

< ?php
  1.   $ch = curl_init();
  2.   curl_setopt($ch, CURLOPT_URL, 'http://blog.yousoft.ru/index.php');
  3.   curl_setopt($ch, CURLOPT_HEADER, false);
  4.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  5.   //Нужно явно указать, что будет POST запрос
  6.   curl_setopt($ch, CURLOPT_POST, true);
  7.   //Здесь передаются значения переменных
  8.   curl_setopt($ch, CURLOPT_POSTFIELDS, 's=CURL');
  9.   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  10.   curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://blog.yousoft.ru)');
  11.   $data = curl_exec($ch);
  12.   curl_close($ch);
  13. ?>

Отправка POST запроса не многим отличается от отправки GET запроса. Все основные шаги остаются такие же. Переменные также задаются парами: name1=value1&name2=value2.

Похожие записи:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Метки:

Комментарии (9) на «Используем CURL (php) часть 2 (отправка GET и POST запросов)»

  1. Юрий:

    Добрый день,
    видел пост
    http://forum.sape.ru/showthread.php?t=1521
    вы только Joomla поддерживаете? А друпал?

    Можете на почту выслать расценки на услуги по разворачиванию сайта (поддержке и развитию) на джумле или друпале – сколько стоит развернуть проект (тз контент и пр. будет)? сколько стоит час работы по программированию?

  2. dimkin:

    классная вещь. спасибо.

  3. ValehO:

    Спасибо за интересную статью. А можно ли поподробнее про передачу переменных? А то я что то не понял –
    curl_setopt($ch, CURLOPT_POSTFIELDS, 's=CURL');
    Как я понял это и есть передача данных, и именно в ней прописывать все переменные как «name1=value1&name2=value2.» или для каждой переменной писать отдельную строку?

  4. ст:

    А как получить только код ответа(заголовок)?

  5. to CT:
    curl_setopt($ch, CURLOPT_NOBODY, true);

  6. Как раз надо писал подобный скрипт, но никак не мог залогиниться, взял ваш скрипт – та самая ситуация – не происходит залогинивание. :(

  7. Сорри, уже все вышло – я протупил и путь к куках поменял только в одном месте. Все аллес гут.

  8. curl_setopt($ch, CURLOPT_POSTFIELDS, ’s=CURL’);
    Так работает

    curl_setopt($ch, CURLOPT_POSTFIELDS, ‘t=TTT’);
    так не работает

    curl_setopt($ch, CURLOPT_POSTFIELDS, ’s=TTT’);
    присылает $_POST[s] // CURL

    curl_setopt($ch, CURLOPT_POSTFIELDS, ’s=CURL&t=TTT’);
    $_POST[t] вообще не присылает!

    Что делать?

  9. Сори! :) Все работает спасибо!

Добавить комментарий