Апр 092017
 

В PHP CURL руководство, Мы будем объяснять как HTTP GET / запросы с PHP CURL library.

В данной статье ниже мы приводим примеры работы с данным протоколом

1) Отправить HTTP GET Запрос с CURL

2) Отправить HTTP Запрос с 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')

Но для использования запроса и Обработчик ошибок не так просто в месте с командой 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

  5 комментариев to “PHP CURL POST & GET Examples Пример – Submit Form использование PHP CURL”

  1. Какой неплохой топик, вы мне помогли.

  2. Вообщем забавно. Спасибо за информацию.

  3. vя тоже так хочу научиться

  4. Это весьма ценная информация

  5. прикольный! хоть и на раз посмотреть!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)