Используем 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. ?>
Много слышал о BlackBerry, хотел пощупать и теперь это стало реальностью. BlackBerry это не просто смартфон — это совокупность оборудования и сервисов. Сейчас этот сервис стал доступен и в России. Цены можно сказать доступные, так например blackberry 9000 bold стоит в районе 18000 рублей.

Посылка 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.

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

Tags:

9 комментариев to “Используем 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. Сори! 🙂 Все работает спасибо!

Leave a Reply