note 91045 added to function.curl-setopt
| From: | larryphpatMrPinhole dot com at osu1 dot php dot net | Date: | Fri, 22 May 2009 05:45:59 +0000 |
| Subject: | note 91045 added to function.curl-setopt | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-155867@lists.php.net to get a copy of this message | ||
Excellent class. Got me up and running in minutes. I changed the error message return to happen
before closing the session. Otherwise you get an invalid handle for the error.
<?PHP
/*
Sean Huber CURL library
This library is a basic implementation of CURL capabilities.
It works in most modern versions of IE and FF.
==================================== USAGE ====================================
It exports the CURL object globally, so set a callback with setCallback($func).
(Use setCallback(array('class_name', 'func_name')) to set a callback as a func
that lies within a different class)
Then use one of the CURL request methods:
get($url);
post($url, $vars); vars is a urlencoded string in query string format.
Your callback function will then be called with 1 argument, the response text.
If a callback is not defined, your request will return the response text.
*/
class CURL {
var $callback = false;
function setCallback($func_name) {
$this->callback = $func_name;
}
function doRequest($method, $url, $vars) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
if ($method == 'POST') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
}
$data = curl_exec($ch);
if ($data) {
if ($this->callback)
{
$callback = $this->callback;
$this->callback = false;
return call_user_func($callback, $data);
} else {
curl_close($ch);
return $data;
}
} else {
$curl_err = curl_error($ch);
curl_close($ch);
return $curl_err;
}
}
function get($url) {
return $this->doRequest('GET', $url, 'NULL');
}
function post($url, $vars) {
return $this->doRequest('POST', $url, $vars);
}
} // class
?>
----
Server IP: 209.41.74.194
Probable Submitter: 207.173.207.151
----
Manual Page -- http://www.php.net/manual/en/function.curl-setopt.php
Edit -- https://master.php.net/note/edit/91045
Del: integrated -- https://master.php.net/note/delete/91045/integrated
Del: useless -- https://master.php.net/note/delete/91045/useless
Del: bad code -- https://master.php.net/note/delete/91045/bad+code
Del: spam -- https://master.php.net/note/delete/91045/spam
Del: non-english -- https://master.php.net/note/delete/91045/non-english
Del: in docs -- https://master.php.net/note/delete/91045/in+docs
Del: other reasons-- https://master.php.net/note/delete/91045
Reject -- https://master.php.net/note/reject/91045
Search -- https://master.php.net/manage/user-notes.php