I have created a function, which get twitter count using json.
But, I want to recheck it agian after some time, like an hour. But currently it checks every time when a page loads. and which effect page loading time.
there is already a PHP function which do exactly what i want, but I cant remember it, I just remember that the function start from tr....
Here is my function, which check twitter follower :
function follower( $tw ) {
$tw = @json_decode(file_get_contents('http://api.twitter.com/1/users/show.json?screen_name='.$tw));
$tw_followers = number_format($tw->followers_count);
return $tw_followers;
}
EDIT:
I found that PHP function:
set_transient('follower', $tw_followers, 60*60*24);
please guide me if I am wrong
I would recommend you to make use of cron jobs if you are using a Unix server or Windows Task Scheduler in the case of windows.
Like this you will be able to use programmed tasks.
For windows here's a tutorial apported by @Chris Cooney: http://www.makeuseof.com/tag/how-to-automate-windows-programs-on-a-schedule/
In the case of using cron you could do it easily like this to check it every hour:
0 * * * * php -f your_relative_or_full_path_URL/params > /dev/null
To avoid anyone to execute the code by URL, you could something like this.
Use AJAX to get it and reload your page with correct value in a frequent interval.
Checking the time using time() will allow it to run every hour if the page is loaded. You will also need to store a value in a database of when it was last run. Below is some pseudo code mixed with PHP
connect_to_database();
$lastcheck = get_value_from_database('last-check');
if($lastcheck+3600 < time()) {
run_json_stuff();
update_last_check_in_database();
}
the $lastcheck+3600 = 1 hour since last run. If it is less than time() which is when the page is loaded, it has been over an hour since it has ran last, so it should run again.
You can use mem cache or some other cache technology to queue up all your JSON key/values and run a background thread to grab those values every hour.