Posting to Twitter Using PHP and cURL

by keif on May 27, 2009

This is just the basic code you’ll find EVERYWHERE on the net. In an effort to be more like Scoble I want to start posting in regards to stuff I’m using/finding/reading to make future efforts in reuse easier – delicious only goes so far, in regards to remembering “what did I tag that with?”

The PHP Function to Update Your Twitter Status

[code lang=”php”]
* A simple function using Curl to post (GET) to Twitter
* Kosso : March 14 2007
* Feel free to do what you like with this.
* It’s pretty easy. But I thought I’d just put it out there.
* Curl is your friend.
* usage : postToTwitter("myusername","mypassword","hello twitterati! I’m posting this from a PHP script! woo!");
function postToTwitter($username,$password,$message)
// GET the API url via web authentication
// add ‘status’ param to send a message to Twitter

$host = "".urlencode(stripslashes(urldecode($message)));

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Expect:’));

curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_POST, 1);

// Go for it!!!
$result = curl_exec($ch);
// Look at the returned header
$resultArray = curl_getinfo($ch);

// close curl

//echo "http code: ".$resultArray[‘http_code’]."<br />";

if($resultArray[‘http_code’] == "200")
echo "<br />OK! posted to".$username."/<br />";
} else
echo "eek! yegads! error posting to Twitter";

// debug the result
// echo "<pre>";
// print_r($resultArray);
// echo "</pre><hr>";
// $sResult = htmlentities($result);
// $sResult = str_replace("&gt;&lt;","&gt;<br />&lt;",$sResult);
// echo "<pre>";
// print $sResult;
// echo "</pre>";

I credit Kosso with the PHP function – it’s basically a slightly more blown out version of the code flaoting around.

  • Pete Littlewood

    this is brilliant! many thanks!!!

  • Pete Littlewood

    this is brilliant! many thanks!!!

Previous post:

Next post: