cURL / libcurl / PHP / Examples

PHP/CURL Examples Collection

We try to collect examples on how to program the PHP/CURL interface here. If you have any source snippests you want to share with the rest of the world, please let us know!

blogpost Post a blog entry to using their "Atom" XML-based API. Michael Phipps
callbacks Set callback functions to receive the HTTP response as it comes through. Keyvan Minoukadeh
cookiejar Login to on one page and then get another page passing all cookies from the first page along Mitchell
customrequest CURLOPT_CUSTOMREQUEST usage shown
ebay_login Mimics a browser and logs in to ebay Imran Khalid
ftpupload FTP upload to a remote site Daniel Stenberg
getbinarypageinvar Get the contents of a web page as a binary into a php variable.
getpageinvar Get the contents of a remote web page into a PHP variable
google-analytics-login This code posts all the correct post fields to Googles universal Account Services login and brings the user directly to the AdSense Overview page. Cookies are used in this example as well as setting the USER AGENT and REFERRER HTTP headers.
httpfileupload Shows how to submit and upload a file to a HTML upload form. Daniel Stenberg
linkchecker Check for a given link in a remote page Michael Phipps
multi Shows how to fetch several documents at once by using the multi interface Roman Rozanov
multipartpost Using a multipart/form-post file upload form on a web page. Pete James
put Perform a HTTP PUT to a remote site Julian Bond
resizejpg Download a remote image, resize it and show it to the user Michael Phipps
rss-adsense Follow your Adsense earnings with an RSS reader Ozh
simpleget Get a URL
simplepost Basic HTTP POST operation

The blogpost.php Example

Post a blog entry to using their "Atom" XML-based API. Written by Michael Phipps



Before you can use this script, you need a blogger acocunt.
They're free - go to
You need to have a blog that you can post to.
You need to know the blogid of the blog you want to post to.
To get the blogid, go to and log in to your blogger account.
There will be a list of blogs.
When you click on a blog name, it will go to a url like :

The blogID portion is what you use for your $blog_id
- in the above example it is 1234567

To carry out other blogger tasks, refer to the Atom API Documentation for

// Set the date of your post
$issued=gmdate("Y-m-d\TH:i:s\Z", time());

// Set the title of your post

// Set the body text of your post.
$body="This is a test post, sent using the atom api.";

// This needs to be changed to the blogID of the blog
// you want to post to (as discussed at the top of this script)

// You must know your username and password
// to be able to post to your blog.
$your_username="username";  //change this to your blogger login username
$your_password="password";  // change this to your blogger login password

// This is the xml message that contains the information you are posting
// to your blog
$content = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n"
   . "<entry xmlns=''>\r\n"
   . "<title mode='escaped' type='text/plain'>".$title."</title>\r\n"
   . "<issued>".$issued."</issued>\r\n"
   . "<generator url=''>Your client's name
   . "<content type='application/xhtml+xml'>\r\n"
   . "<div xmlns=''>".$body."</div>\r\n"
   . "</content>\r\n"
   . "</entry>\r\n";

// This is the custom header that needs to be sent to post to your blog.
$headers  =  array( "Content-type: application/atom+xml" );

// Use curl to post to your blog.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "".$blog_id);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $your_username.':'.$your_password);
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);

$data = curl_exec($ch);

if (curl_errno($ch)) {
 print curl_error($ch);
} else {

// $data contains the result of the post...
echo $data;