PHP DZone Story Information Grabber

By  on  

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.

Recent Features

  • By
    Serving Fonts from CDN

    For maximum performance, we all know we must put our assets on CDN (another domain).  Along with those assets are custom web fonts.  Unfortunately custom web fonts via CDN (or any cross-domain font request) don't work in Firefox or Internet Explorer (correctly so, by spec) though...

  • By
    CSS vs. JS Animation: Which is Faster?

    How is it possible that JavaScript-based animation has secretly always been as fast — or faster — than CSS transitions? And, how is it possible that Adobe and Google consistently release media-rich mobile sites that rival the performance of native apps? This article serves as a point-by-point...

Incredible Demos

  • By
    Create a Spinning, Zooming Effect with CSS3

    In case you weren't aware, CSS animations are awesome.  They're smooth, less taxing than JavaScript, and are the future of node animation within browsers.  Dojo's mobile solution, dojox.mobile, uses CSS animations instead of JavaScript to lighten the application's JavaScript footprint.  One of my favorite effects...

  • By
    Fancy Navigation with MooTools JavaScript

    Navigation menus are traditionally boring, right? Most of the time the navigation menu consists of some imagery with a corresponding mouseover image. Where's the originality? I've created a fancy navigation menu that highlights navigation items and creates a chain effect. The XHTML Just some simple...

Discussion

  1. 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.mycompany.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];
    }
    

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!