PHP
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Introduction> <Other Services
Last updated: Fri, 20 Mar 2009

view this page in

Client URL Library



Introduction> <Other Services
Last updated: Fri, 20 Mar 2009
 
add a note add a note User Contributed Notes
cURL
web at davss dot com
26-Jan-2009 10:00
Here is a reusable curl object - please help me improve it. There is no erro handling (I don't need it) which can be implemented

<?php
class cURL {

   
# defaul global options
   
var $opts = array(
           
CURLOPT_HEADER => FALSE,
           
CURLOPT_RETURNTRANSFER => TRUE
   
);

    function
cURL(){
    }

    function
r($ch,$opt){
       
# assign global options array
       
$opts = $this->opts;
       
# assign user's options
       
foreach($opt as $k=>$v){$opts[$k] = $v;}
       
curl_setopt_array($ch,$opts);
       
curl_exec($ch);
       
$r['code'] = curl_getinfo($ch,CURLINFO_HTTP_CODE);
       
$r['cr'] = curl_exec($ch);
       
$r['ce'] = curl_errno($ch);
       
curl_close($ch);
        return
$r;
    }

    function
get($url='',$opt=array()){
       
# create cURL resource
       
$ch = curl_init($url);
        return
$this->r($ch,$opt);
    }

    function
post($url='',$data=array(),$opt=array()){
       
# set POST options
       
$opts[CURLOPT_POST] = TRUE;
       
$opts[CURLOPT_POSTFIELDS] = $data;

       
# create cURL resource
       
$ch = curl_init($url);
        return
$this->r($ch,$opt);
    }
};
$cURL = new cURL();

#
# END of CLASS
#

/*
* test.php files for testing purposes - must be in the same folder undelss you specify $url path
*
<?php
echo " WORKING!!<p>";
if($_GET > 0){
print_r($_GET);
}
elseif($_POST > 0){
print_r($_POST);
}
?>
*/
/*
# EXAMPLE OF USE
$path = "http://"; # path to test.php file
$file = "test.php"; # safe the above code in text.php file
$url = $path . $file;
$post_data = array("FLD1"=>"VAL1","FLD2"=>"VAL2");
# user's curl options that override global if necessary
$o = array(CURLOPT_HEADER => TRUE,CURLOPT_RETURNTRANSFER => TRUE,CURLOPT_FAILONERROR=>TRUE);

function ccc($arr){
    echo "CODE: " . $arr['code'] . "<p>";
    echo "CE: " . $arr['ce'] . "<p>";
    echo "CR: <br />" . $arr['cr'] . "<p>";
}

#POST TEST
$cPost = $cURL->post($url,$post_data,$o); // you can remove options
echo "<h2>cPost</h2>";
ccc($cPost);

#GET TEST
$cGet = $cURL->post($url,$post_data,$o); // you can remove options
echo "<h2>cGet</h2>";
ccc($cGet);
*/

?>
pyromus at gmail dot com
16-Oct-2008 11:37
You can use this class for fast entry

<?php
class cURL {
var
$headers;
var
$user_agent;
var
$compression;
var
$cookie_file;
var
$proxy;
function
cURL($cookies=TRUE,$cookie='cookies.txt',$compression='gzip',$proxy='') {
$this->headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg';
$this->headers[] = 'Connection: Keep-Alive';
$this->headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
$this->user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)';
$this->compression=$compression;
$this->proxy=$proxy;
$this->cookies=$cookies;
if (
$this->cookies == TRUE) $this->cookie($cookie);
}
function
cookie($cookie_file) {
if (
file_exists($cookie_file)) {
$this->cookie_file=$cookie_file;
} else {
fopen($cookie_file,'w') or $this->error('The cookie file could not be opened. Make sure this directory has the correct permissions');
$this->cookie_file=$cookie_file;
fclose($this->cookie_file);
}
}
function
get($url) {
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers);
curl_setopt($process, CURLOPT_HEADER, 0);
curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent);
if (
$this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file);
if (
$this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file);
curl_setopt($process,CURLOPT_ENCODING , $this->compression);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
if (
$this->proxy) curl_setopt($cUrl, CURLOPT_PROXY, ‘proxy_ip:proxy_port’);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
$return = curl_exec($process);
curl_close($process);
return
$return;
}
function
post($url,$data) {
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers);
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent);
if (
$this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file);
if (
$this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file);
curl_setopt($process, CURLOPT_ENCODING , $this->compression);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
if (
$this->proxy) curl_setopt($process, CURLOPT_PROXY, $this->proxy);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($process, CURLOPT_POST, 1);
$return = curl_exec($process);
curl_close($process);
return
$return;
}
function
error($error) {
echo
"<center><div style='width:500px;border: 3px solid #FFEEFF; padding: 3px; background-color: #FFDDFF;font-family: verdana; font-size: 10px'><b>cURL Error</b><br>$error</div></center>";
die;
}
}
$cc = new cURL();
$cc->get('http://www.example.com');
$cc->post('http://www.example.com','foo=bar');
?>

[EDIT BY danbrown AT php DOT net:  Includes a bugfix provided by "Anonymous" on 01-Dec-2008 @ 06:52.  Also replaced real URL with example.com as per RFC 2606.]
eflash at gmx dot net
05-Oct-2008 04:45
In order to use curl with secure sites you will need a ca-bundle.crt file; here's a PHP script I've written which creates a fresh ca-bundle:
http://www.gknw.net/php/phpscripts/mk-ca-bundle.php
I've also written scripts in other languages, f.e. the Perl one which ships now with curl distributions:
http://curl.haxx.se/lxr/source/lib/mk-ca-bundle.pl
and also a Win32 WSH script if you prefer that:
http://www.gknw.net/vb/scripts/mk-ca-bundle.vbs

HTH, Guenter.
cristianods at yahoo dot com
14-Aug-2008 01:53
Tip for Installing cURL with AppServ development server on Windows

If you are running AppServ as a WAMP development environment on a Windows machine, you may experience difficulty installing cURL. Here are some helpful steps:

First go to the PHP directory and copy the following libraries to the windows/system32 dir.
ssleay32.dll
libeay32.dll

Open the php ini file and remove the ; from extension=php_curl.dll

Reboot your machine to load […]

Introduction> <Other Services
Last updated: Fri, 20 Mar 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites