PHP DZone Story Information Grabber
Written by David Walsh on Monday, January 21, 2008
Having a user submit a post to DZone is great for several reasons:
- A reader thinks enough of what you wrote to want to share it with others.
- Your blog gets more readership.
- Your blog revenue increases.
- The inlink and traffic boost improve your search engine rank and Alexa ranks.
- The new visitors may post comments, which may enhance your article.
Surely there are numerous more. Thus, it’s important to keep track of the information about your article provided by DZone. Luckily, using some quick PHP code, you can grab relevant information right from DZone. All you need to know is the DZone URL that features your article.
The Code
/* step 1: download the page content */
$dzone_content = file_get_contents('http://www.dzone.com/links/f_programming_fast_guide.html');
/* step 2: parse it! */
$votes_up = get_match('/class="ldStats-up">(.*)<\/li>/isU',$dzone_content);
$votes_down = get_match('/class="ldStats-down">(.*)<\/li>/isU',$dzone_content);
$views = get_match('/class="ldStats-views">(.*)<\/li>/isU',$dzone_content);
$clicks = get_match('/class="ldStats-clicks">(.*)<\/li>/isU', $dzone_content);
/* step 3: echo */
echo 'Up Votes: ',$votes_up,'<br />';
echo 'Down Votes: ',$votes_down,'<br />';
echo 'Views: ',$views,'<br />';
echo 'Clicks: ',$clicks,'<br />';
/* helper: does regex */
function get_match($regex,$content)
{
preg_match($regex,$content,$matches);
return $matches[1];
}One note: each usage of this script increments DZone’s “views” stat, so if you plan on keeping accurate statistics, record the number of requests to the page and subtract that from the total.
Follow via RSS Epic Discussion
Be Heard!
I want to hear what you have to say! Share your comments and questions below.











I added some lines for those who are behind a proxy, also you have an extra on line 8 but this is a good one to track your posts on DZone :)
/* step 1: download the page content */
$default_opts = array(‘http’=>array(
‘method’=>”GET”,
‘header’=>”Accept-language: en\r\n” . “Cookie: foo=bar”,
‘proxy’=>”tcp://http-proxy.corporate.ge.com:80″));
$def = stream_context_get_default($default_opts);
$dzone_content = file_get_contents(‘http://www.dzone.com/links/f_programming_fast_guide.html’);
/* step 2: parse it! */
$votes_up = get_match(‘/class=”ldStats-up”>(.*)/isU’, $dzone_content);
$votes_down = get_match(‘/class=”ldStats-down”>(.*)/isU’, $dzone_content);
$views = get_match(‘/(.*)/isU’, $dzone_content);
$clicks = get_match(‘/(.*)/isU’, $dzone_content);
/* step 3: echo */
echo ‘Up Votes: ‘,$votes_up,”;
echo ‘Down Votes: ‘,$votes_down,”;
echo ‘Views: ‘,$views,”;
echo ‘Clicks: ‘,$clicks,”;
/* helper: does regex */
function get_match($regex, $content){
preg_match($regex, $content, $matches);
return $matches[1];
}