В 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