Web development , php , ajax , symfony, framework, zend
In: web resources
9 Oct 2009
One way of significantly speeding up your website is by caching information you retrieve remotely from other websites or databases. Caching information is extremely simple and can save your users seconds of unnecessary waiting. Here’s how I cache my FeedBurner follower count on my site.
/* settings */
$cache_path = '/cache/';
$rss_file_name = date('Y-m-d').'-rss.txt';
/* rss */
if(file_exists($cache_path.$rss_file_name)) {
$rss_subcribers = file_get_contents($cache_path.$rss_file_name);
}
else {
$rss_content = get_url('https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=dfadajf324789fhSDFDf48');
$subscribers = get_match('/circulation="(.*)"/isU',$rss_content);
if($subscribers) {
$subscribers = number_format($subscribers,0,'',',');
file_put_contents($cache_path.$rss_file_name,$subscribers);
$rss_subcribers = $subscribers;
}
}
/* display */
echo 'My subscriber count is: ',$rss_subscribers;
/* connects to the URL, returns content */
function get_url($url) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
/* helper: does the regex */
function get_match($regex,$content) {
preg_match($regex,$content,$matches);
return $matches[1];
}
The first thing we do is check to see if our cached file exists. If it does, we simply return its contents. If the cache file doesn’t exist, we connect to our private FeedBurner URL, parse the content, and save the feed to a file named after the current day. Note the way we can check if we had gotten the count for the current day is by naming the file in “year-month-day” format.
Don’t forget to follow me on Twitter and be sure to visit Script & Style for the best Javascript and CSS articles around!
Sponsor the David Walsh Blog and get your brand in front of several thousand users per day!
Retrieve, Cache, and Display Your FeedBurner Subscriber Count
Related posts:
This blog delivers stylish and dynamic news for designers and web-developers on all subjects of design, ranging from: CSS, Ajax, Javascript, web design, graphics, typography, advertising & much more. Our goal is to help you communicate effectively on the web with an engaging website or functional interface.