3

我创建了一个函数,它使用 json 获取 twitter 计数。

但是,我想在一段时间后重新检查它,比如一个小时。但目前它每次加载页面时都会检查。以及哪些影响页面加载时间。

已经有一个 PHP 函数可以做我想要的,但我不记得了,我只记得函数从tr....

这是我的功能,它检查 twitter 关注者:

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;
}

编辑:

我发现PHP函数:

set_transient('follower', $tw_followers, 60*60*24);

如果我错了,请指导我

4

4 回答 4

2

如果您使用的是 Unix 服务器或 Windows 任务计划程序,我建议您使用cron 作业。

像这样,您将能够使用编程任务。

对于 Windows,这里有一个由@Chris Cooney 提供的教程:http: //www.makeuseof.com/tag/how-to-automate-windows-programs-on-a-schedule/

在使用 cron 的情况下,您可以像这样轻松地每小时检查一次:

0 * * * *  php -f your_relative_or_full_path_URL/params > /dev/null 

为了避免任何人通过 URL 执行代码,你可以这样

于 2013-04-24T11:32:48.733 回答
1

如果页面已加载,使用 time() 检查时间将允许它每小时运行一次。您还需要在数据库中存储一个上次运行时间的值。下面是一些与 PHP 混合的伪代码

connect_to_database();
$lastcheck = get_value_from_database('last-check');
if($lastcheck+3600 < time()) {
  run_json_stuff();
  update_last_check_in_database();
}

$lastcheck+3600 = 自上次运行以来的 1 小时。如果它小于加载页面时的 time(),则自上次运行以来已经超过一个小时,因此它应该再次运行。

于 2013-04-24T11:35:57.357 回答
1

您可以使用 mem 缓存或其他一些缓存技术将所有 JSON 键/值排队并运行后台线程以每小时获取这些值。

于 2013-04-24T11:37:39.837 回答
0

使用AJAX获取它并在频繁的时间间隔内以正确的值重新加载您的页面。

于 2013-04-24T11:34:48.857 回答