Tuesday 14 August 2018

Create Digg URLs Using PHP

Digg recently came out with a sweet new feature that allows users to create Tiny Digg URLs which show a Digg banner at the top allowing easy access to vote for the article from the page. While I love visiting Digg every once in a while, I'd rather grab the URL remotely. Here's how to do so using PHP.


The PHP
/* function that grabs the response from digg */
function get_digg_url($url,$app_key)
{
$return_xml = file_get_contents('http://services.digg.com/url/short/create?type=xml&appkey='.urlencode($app_key).'&url='.urlencode($url));
$digg_url = get_match('/short_url="(.*)"/isU',$return_xml);
return $digg_url;
}

/* function that runs a regex to scrub for the url */
function get_match($regex,$content)
{
preg_match($regex,$content,$matches);
return $matches[1];
}

/* important! set a fake user agent */
ini_set('user_agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6');

/* url i want the digg URL for, and my app key which is a URL */
$url = 'https://davidwalsh.name/penetrated-diggnation';
$app = 'https://davidwalsh.name';

/* get the digg URL! */
$digg_url = get_digg_url($url,$app);  //returns:  http://digg.com/u1DOk
Very quick and simple. You could also use PHP's cURL library if you wanted.

The XML Response
<?xml version="1.0" encoding="UTF-8"?>
<shorturls count="1" offset="0" timestamp="1238884894" total="1">
<shorturl link="https://davidwalsh.name/penetrated-diggnation" short_url="http://digg.com/u1DOk" view_count="0"/>
</shorturls>
XML is a beautiful thing, isn't it? You may also request a JSON response.

0 comments:

Post a Comment