Удобный пример использования cURL на php

11.10.2017

Код демонстрирует как передать данные а хэдере и теле запроса к серверу и обработать ответ.

Файл лучше скачать, а не копировать текст, иначе вначале съедаются пробелы.

01.php (Download)

 <?php


  error_reporting(E_ALL);
  ini_set('display_errors', 'On');
  
  /**
  * 
  * @param undefined $sUrl
  * 
  * @return
  */
  function getPage($sUrl)
  {
    $oRet = new stdClass();
    $oRet->status = 'error';
    $oRet->result = '';
    $oRet->code = 0;

    $headers = array(
      'Content-Type: application/json;charset=utf-8',
      'Authorization: 4E000001485A8EF6',
    );
    
    $data = '{"cart":{"currency":"RUR","items":[{"feedId":439556...';
    //$data = http_build_query($data, '', '&');

    $aOptions = array (
      CURLOPT_HTTPHEADER => $headers,
      CURLOPT_URL => $sUrl,
      CURLOPT_POST => 1,
      CURLOPT_POSTFIELDS => $data,
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_TIMEOUT => 45,
      CURLOPT_VERBOSE => 0,
      CURLOPT_SSL_VERIFYHOST => 0,
      CURLOPT_SSL_VERIFYPEER => 0,
    );

    $ch = curl_init();
    curl_setopt_array($ch, $aOptions);
    $response = curl_exec($ch);
    
    if ($response)
    {
      $oRet->status = 'ok';
      $oRet->result = $response; 
      //$oRet->result = json_decode($oRet->result, TRUE); 
    }
    else
    {
      $oRet->status = 'error';
      $oRet->result = 'Curl error: ' . curl_error($ch); 
    }
    $oRet->code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    

    return $oRet;
  }
  
  echo '<pre>';
    // print_r(getPage('http://oddler.ru/')); // code == 200
    // print_r(getPage('https://oddler.ru/111')); // code == 404
    print_r(getPage('https://oddler.TRru/111')); // code == 0
  echo '</pre>';


Категории: PHP, Script / Tool
Яндекс.Метрика