В PHP CURL POST руководство, Мы будем объяснять как использовать HTTP GET / POST запросы с PHP CURL library.
В данной статье ниже мы приводим примеры работы с данным протоколом
1) Отправить HTTP GET Запрос с CURL
2) Отправить HTTP POST Запрос с CURL
3) Отправить Random User-Agent в Запросе
4) Обработка перенаправление redirects ( HTTP 301, 302 )
5) Ошибки обработки ( Handle Errors ).
Почему мы используем PHP CURL ?
Отправить HTTP GET запрос, простой способ использовать метод file_get_contents().
file_get_contents('http://it.w-develop.com')
Но для использования POST запроса и использовать Обработчик ошибок не так просто в месте с командой file_get_contents().
Отправить HTTP запрос очень просто с PHP CURL. Вам надо выполнить четыре шага для отправки запроса
Шаг 1). Инициализация CURL сессии
Шаг 2). Заполняем options для CURL сессии
curl_setopt( $ch, CURLOPT_URL, "http://it.w-develop.com" ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); //curl_setopt( $ch, CURLOPT_HEADER, true ); // Если вы хотите использовать заголовки
CURLOPT_URL -> URL для загружки
CURLOPT_HEADER -> добавляем header/not
CURLOPT_RETURNTRANSFER -> если true, информация вернется как строка, а не выводит ее.
Полный список опций, смотри в документации PHP Documentation.
Шаг 3). Загружаем CURL сессию. $output=curl_exec($ch);
Шаг 4). Зарываем сессию curl_close($ch);
Note: Вы можете проверить, включен CURL enabled/not со следующим кодом. if( is_callable( 'curl_init' ) ){ echo "Enabled"; } else { echo "Not enabled"; }
1.PHP CURL GET Пример
You can use the below code to send GET request.
function httpGet( $url ) { $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); // curl_setopt( $ch, CURLOPT_HEADER, false ); $output=curl_exec( $ch ); curl_close( $ch ); return $output; } echo httpGet("http://it.w-develop.com");
2.PHP CURL POST Пример
You can use the below code to submit form using PHP CURL.
function httpPost( $url, $params ) { $postData = ''; //create name value pairs seperated by & foreach( $params as $k => $v ) { $postData .= $k . '='.$v.'&'; } $postData = rtrim( $postData, '&' ); $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL,$url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER,true ); curl_setopt( $ch, CURLOPT_HEADER, false ); curl_setopt( $ch, CURLOPT_POST, count($postData ) ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $postData ); $output = curl_exec( $ch ); curl_close( $ch ); return $output; }
How to use the function:
$params = array( "name" => "Ravishanker Kusuma", "age" => "32", "location" => "India" ); echo httpPost( "http://it.w-develop.com/examples/php/curl-examples/post.php", $params );
3.SEND RANDOM USER-AGENT IN THE REQUESTS
You can use the below function to get Random User-Agent.
function getRandomUserAgent() { $userAgents=array( "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)", "Opera/9.20 (Windows NT 6.0; U; en)", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50", "Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.02 [en]", "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; fr; rv:1.7) Gecko/20040624 Firefox/0.9", "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/48 (like Gecko) Safari/48" ); $random = rand(0,count($userAgents)-1); return $userAgents[$random]; }
Используется CURLOPT_USERAGENT, Вы можете установить User-Agent string.
curl_setopt( $ch, CURLOPT_USERAGENT, getRandomUserAgent()) ;
4. HANDLE REDIRECTS (HTTP 301,302)
Обрабатывать URL redirects, set CURLOPT_FOLLOWLOCATION to TRUE.Максимальное количество переадресаций можно контролировать, используя CURLOPT_MAXREDIRS.
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE); curl_setopt($ch,CURLOPT_MAXREDIRS,2);//only 2 redirects
5. КАК ОБРАТИТЬ ОШИБКИ CURL
мы можем использовать методы curl_errno(), curl_error(), Чтобы получить последние ошибки для текущего сеанса.
curl_error( $ch ) -> returns error as string
curl_errno( $ch ) -> returns error number
Вы можете использовать приведенный ниже код для обработки ошибок.
function httpGetWithErros( $url ) { $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); $output=curl_exec( $ch ); if ( $output === false ) { echo "Error Number:" . curl_errno( $ch ) . "
"; echo "Error String:" . curl_error( $ch ); } curl_close($ch); return $output; }
Вывод полного списока ошибок, refer CURL errors