В первой части был расмотрен простой пример запроса страницы.
В этой будет рассмотрено использование библиотеки CURL для отправки GET и POST запросов.
Пример использования GET запроса
< ?php
$ch = curl_init();
//GET запрос указывается в строке URL
curl_setopt($ch, CURLOPT_URL, 'http://www.yousoft.ru/?s=CURL');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://www.yousoft.ru)');
$data = curl_exec($ch);
curl_close($ch);
?>
Посылка GET запроса ничем не отличается от получения страницы. Важно заметить, что строка запроса формируется следующим образом: https://www.yousoft.ru/index.php?name1=value1&name2=value2&name3=value3. Где https://www.yousoft.ru/index.php — адрес страницы, nameX — название переменной, valueX — значение переменной.
Пример использования POST запроса
< ?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.yousoft.ru/index.php');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//Нужно явно указать, что будет POST запрос
curl_setopt($ch, CURLOPT_POST, true);
//Здесь передаются значения переменных
curl_setopt($ch, CURLOPT_POSTFIELDS, 's=CURL');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://www.yousoft.ru)');
$data = curl_exec($ch);
curl_close($ch);
?>
Отправка POST запроса не многим отличается от отправки GET запроса. Все основные шаги остаются такие же. Переменные также задаются парами: name1=value1&name2=value2.
Добрый день,
видел пост
http://forum.sape.ru/showthread.php?t=1521
вы только Joomla поддерживаете? А друпал?
Можете на почту выслать расценки на услуги по разворачиванию сайта (поддержке и развитию) на джумле или друпале — сколько стоит развернуть проект (тз контент и пр. будет)? сколько стоит час работы по программированию?
классная вещь. спасибо.
Спасибо за интересную статью. А можно ли поподробнее про передачу переменных? А то я что то не понял —
curl_setopt($ch, CURLOPT_POSTFIELDS, 's=CURL');
Как я понял это и есть передача данных, и именно в ней прописывать все переменные как «name1=value1&name2=value2.» или для каждой переменной писать отдельную строку?
А как получить только код ответа(заголовок)?
to CT:
curl_setopt($ch, CURLOPT_NOBODY, true);
Как раз надо писал подобный скрипт, но никак не мог залогиниться, взял ваш скрипт — та самая ситуация — не происходит залогинивание. 🙁
Сорри, уже все вышло — я протупил и путь к куках поменял только в одном месте. Все аллес гут.
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] вообще не присылает!
Что делать?
Сори! 🙂 Все работает спасибо!