Skip to content
Branch: master
Clone or download
Latest commit 2492414 Dec 22, 2015
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Tested and working with simple_get. Added curl to autoload for this p… Mar 29, 2011
libraries Fixed SSL host verification Jan 15, 2014
LICENSE Update May 6, 2014 updated version with PATCH support Apr 23, 2013



This package is no longer actively maintained. If somebody sends in a pull request with some major security bug then I'll merge it, but other than that I am no longer using CodeIgniter Curl for anything. Framework specific code is something I thought was cool in 2009 when I built this, but I've barely touched it since. Use a framework agnostic equivilent, like Guzzle or Requests.

CodeIgniter-cURL is a CodeIgniter library which makes it easy to do simple cURL requests and makes more complicated cURL requests easier too.


  1. PHP 5.1+
  2. CodeIgniter 1.7.x - 2.0-dev
  3. PHP 5 (configured with cURL enabled)
  4. libcurl


  • POST/GET/PUT/DELETE requests over HTTP
  • HTTP Authentication
  • Follows redirects
  • Returns error string
  • Provides debug information
  • Proxy support
  • Cookies



Simple calls

These do it all in one line of code to make life easy. They return the body of the page, or FALSE on fail.

// Simple call to remote URL
echo $this->curl->simple_get('');

// Simple call to CI URI
$this->curl->simple_post('controller/method', array('foo'=>'bar'));

// Set advanced options in simple calls
// Can use any of these flags

$this->curl->simple_get('', array(CURLOPT_PORT => 8080));
$this->curl->simple_post('', array('foo'=>'bar'), array(CURLOPT_BUFFERSIZE => 10)); 

Advanced calls

These methods allow you to build a more complex request.

// Start session (also wipes existing/previous sessions)

// Option & Options
$this->curl->option(CURLOPT_BUFFERSIZE, 10);
$this->curl->options(array(CURLOPT_BUFFERSIZE => 10));

// More human looking options
$this->curl->option('buffersize', 10);

// Login to HTTP user authentication
$this->curl->http_login('username', 'password');

// Post - If you do not use post, it will just run a GET request
$post = array('foo'=>'bar');

// Cookies - If you do not use post, it will just run a GET request
$vars = array('foo'=>'bar');

// Proxy - Request the page through a proxy server
// Port is optional, defaults to 80
$this->curl->proxy('', 1080);

// Proxy login
$this->curl->proxy_login('username', 'password');

// Execute - returns responce
echo $this->curl->execute();

// Debug data ------------------------------------------------

// Errors
$this->curl->error_code; // int

// Information
$this->curl->info; // array
You can’t perform that action at this time.