mnakos

curl - how to use (functions)

Sep 14th, 2018
444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.17 KB | None | 0 0
  1. <?php
  2.  
  3. //--------------------------------------------------------------------------------------------------------------------------------------------
  4. $curl_error_codes = array(
  5.     0 => 'NO_ERROR',
  6.     1 => 'CURLE_UNSUPPORTED_PROTOCOL',
  7.     2 => 'CURLE_FAILED_INIT',
  8.     3 => 'CURLE_URL_MALFORMAT',
  9.     4 => 'CURLE_URL_MALFORMAT_USER',
  10.     5 => 'CURLE_COULDNT_RESOLVE_PROXY',
  11.     6 => 'CURLE_COULDNT_RESOLVE_HOST',
  12.     7 => 'CURLE_COULDNT_CONNECT',
  13.     8 => 'CURLE_FTP_WEIRD_SERVER_REPLY',
  14.     9 => 'CURLE_REMOTE_ACCESS_DENIED',
  15.     11 => 'CURLE_FTP_WEIRD_PASS_REPLY',
  16.     13 => 'CURLE_FTP_WEIRD_PASV_REPLY',
  17.     14 =>'CURLE_FTP_WEIRD_227_FORMAT',
  18.     15 => 'CURLE_FTP_CANT_GET_HOST',
  19.     17 => 'CURLE_FTP_COULDNT_SET_TYPE',
  20.     18 => 'CURLE_PARTIAL_FILE',
  21.     19 => 'CURLE_FTP_COULDNT_RETR_FILE',
  22.     21 => 'CURLE_QUOTE_ERROR',
  23.     22 => 'CURLE_HTTP_RETURNED_ERROR',
  24.     23 => 'CURLE_WRITE_ERROR',
  25.     25 => 'CURLE_UPLOAD_FAILED',
  26.     26 => 'CURLE_READ_ERROR',
  27.     27 => 'CURLE_OUT_OF_MEMORY',
  28.     28 => 'CURLE_OPERATION_TIMEDOUT',
  29.     30 => 'CURLE_FTP_PORT_FAILED',
  30.     31 => 'CURLE_FTP_COULDNT_USE_REST',
  31.     33 => 'CURLE_RANGE_ERROR',
  32.     34 => 'CURLE_HTTP_POST_ERROR',
  33.     35 => 'CURLE_SSL_CONNECT_ERROR',
  34.     36 => 'CURLE_BAD_DOWNLOAD_RESUME',
  35.     37 => 'CURLE_FILE_COULDNT_READ_FILE',
  36.     38 => 'CURLE_LDAP_CANNOT_BIND',
  37.     39 => 'CURLE_LDAP_SEARCH_FAILED',
  38.     41 => 'CURLE_FUNCTION_NOT_FOUND',
  39.     42 => 'CURLE_ABORTED_BY_CALLBACK',
  40.     43 => 'CURLE_BAD_FUNCTION_ARGUMENT',
  41.     45 => 'CURLE_INTERFACE_FAILED',
  42.     47 => 'CURLE_TOO_MANY_REDIRECTS',
  43.     48 => 'CURLE_UNKNOWN_TELNET_OPTION',
  44.     49 => 'CURLE_TELNET_OPTION_SYNTAX',
  45.     51 => 'CURLE_PEER_FAILED_VERIFICATION',
  46.     52 => 'CURLE_GOT_NOTHING',
  47.     53 => 'CURLE_SSL_ENGINE_NOTFOUND',
  48.     54 => 'CURLE_SSL_ENGINE_SETFAILED',
  49.     55 => 'CURLE_SEND_ERROR',
  50.     56 => 'CURLE_RECV_ERROR',
  51.     58 => 'CURLE_SSL_CERTPROBLEM',
  52.     59 => 'CURLE_SSL_CIPHER',
  53.     60 => 'CURLE_SSL_CACERT',
  54.     61 => 'CURLE_BAD_CONTENT_ENCODING',
  55.     62 => 'CURLE_LDAP_INVALID_URL',
  56.     63 => 'CURLE_FILESIZE_EXCEEDED',
  57.     64 => 'CURLE_USE_SSL_FAILED',
  58.     65 => 'CURLE_SEND_FAIL_REWIND',
  59.     66 => 'CURLE_SSL_ENGINE_INITFAILED',
  60.     67 => 'CURLE_LOGIN_DENIED',
  61.     68 => 'CURLE_TFTP_NOTFOUND',
  62.     69 => 'CURLE_TFTP_PERM',
  63.     70 => 'CURLE_REMOTE_DISK_FULL',
  64.     71 => 'CURLE_TFTP_ILLEGAL',
  65.     72 => 'CURLE_TFTP_UNKNOWNID',
  66.     73 => 'CURLE_REMOTE_FILE_EXISTS',
  67.     74 => 'CURLE_TFTP_NOSUCHUSER',
  68.     75 => 'CURLE_CONV_FAILED',
  69.     76 => 'CURLE_CONV_REQD',
  70.     77 => 'CURLE_SSL_CACERT_BADFILE',
  71.     78 => 'CURLE_REMOTE_FILE_NOT_FOUND',
  72.     79 => 'CURLE_SSH',
  73.     80 => 'CURLE_SSL_SHUTDOWN_FAILED',
  74.     81 => 'CURLE_AGAIN',
  75.     82 => 'CURLE_SSL_CRL_BADFILE',
  76.     83 => 'CURLE_SSL_ISSUER_ERROR',
  77.     84 => 'CURLE_FTP_PRET_FAILED',
  78.     84 => 'CURLE_FTP_PRET_FAILED',
  79.     85 => 'CURLE_RTSP_CSEQ_ERROR',
  80.     86 => 'CURLE_RTSP_SESSION_ERROR',
  81.     87 => 'CURLE_FTP_BAD_FILE_LIST',
  82.     88 => 'CURLE_CHUNK_FAILED'
  83. );
  84. //--------------------------------------------------------------------------------------------------------------------------------------------
  85. /*
  86. *   $data may be an array() ex.
  87. *   array(
  88. *       'myproperty' => 'a text',
  89. *       'another_property' => 'hello world'
  90. *   )
  91. */
  92. function CallAPIEx($method, $url, $data)
  93. {
  94.     global $curl_error_codes;
  95.     $curl = curl_init($url);
  96.     switch ($method)
  97.     {      
  98.         case "POST":
  99.             curl_setopt($curl, CURLOPT_POST, true);
  100.             curl_setopt($curl, CURLOPT_POSTFIELDS, $data);     
  101.             break;
  102.         case "PUT":
  103.             curl_setopt($curl, CURLOPT_PUT, 1);
  104.             break;
  105.         default:
  106.             if ($data)
  107.                 $url = sprintf("%s?%s", $url, http_build_query($data));
  108.     }
  109.  
  110.     curl_setopt($curl, CURLOPT_URL, $url);
  111.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  112.     curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 1);   
  113.    
  114.     // Use the below (CURLOPT_SSL_VERIFYPEER) in case of self signed certificate on the server
  115.     // curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  116.    
  117.     $result = curl_exec($curl);
  118.     $info = curl_getinfo($curl);
  119.     $error = curl_errno($curl);
  120.     curl_close($curl);
  121.  
  122.     return array(
  123.         'result'    => $result,
  124.         'info'      => $info,
  125.         'error'     => $error,
  126.         'error_msg' => $curl_error_codes[$error],
  127.     );
  128. }
  129. //--------------------------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment