刚刚更新了下面的一些代码!

fanpage.php
class fanpage {
  public $fan_ID;
  public $info;

  function __construct($fan_ID = null) {
    $this->fan_ID = $fan_ID;
    $this->info = json_decode(file_get_contents('http://graph.facebook.com/' . $fan_ID));
  }

  function fan_count() {
    return $info->likes;
  }

  function fan_name() {
    return $info->name;
  }
}
page.php
<?php
include('fanpage.php');
$fp = new fanpage(PAGE_ID);
?>

<div style="width:100px; height:100px; border:1px solid black;">
    Facebook Logo
</div>
<div class="fb_stats" id="fb_name">
    <?php echo $fp->fan_name()?>
</div>
<div class="fb_stats" id="fb_likes">
    <?php echo $fp->fan_count()?>
</div>

<script type="text/javascript>
var delay = 10000; //10000 = 10 seconds
var fbint = window.setInterval(checkFacebook, delay);

function checkFacebook(){
  $.getJSON('checkFacebook.php?callback=?', {fan_ID: '$fan_ID'}, function(rs){
    if (rs.name) $('#fb_name').text(rs.name);
    if (rs.likes) $('#fb_likes').text(rs.likes);
  });
}
</script>
checkFacebook.php
include('fanpage.php');

$fan_ID = (int) $_GET['fan_ID'];
$fp = new fanpage($fan_ID);

$data = (object) array('likes' => $fb->likes, 'name' => $fb->name); //sloppy object
$callback = $_GET['callback']; //sanitize this

print $callback . '(' . json_encode($data) . ')';
exit;

下面的旧东西

你熟悉很多JavaScript或jQuery吗?这里有一个简短的jQuery示例,应该可以很好地工作。

page.php
<script type="text/javascript>
var delay = 10000; //10000 = 10 seconds
var fbint = window.setInterval(checkFacebook, delay);

function checkFacebook(){
  $.getJSON('checkFacebook.php?callback=?', function(rs){
    if (rs.name) $('#fb_name').text(rs.name);
    if (rs.likes) $('#fb_likes').text(rs.likes);
  });
}
</script>
checkFacebook.phpnamelikescheckFacebook.php
//do all your normal config stuff here
$info = json_decode(file_get_contents('http://graph.facebook.com/' . $fan_ID));

$data = (object) array('likes' => $info->likes, 'name' => $info->name); //sloppy object
$callback = $_GET['callback']; //sanitize this

print $callback . '(' . json_encode($data) . ')';
exit;

还有一件事!顶层的函数工作得很好,但是两次发送完全相同的请求是在浪费大量时间。您可以从同一位置提取这两部分信息,那么为什么不这样做呢?

<?php
class fanpage {
  public $fan_ID;
  public $info;

  function __construct($fan_ID = null) {
    $this->fan_ID = $fan_ID;
    $this->info = json_decode(file_get_contents('http://graph.facebook.com/' . $fan_ID));
  }

  function fan_count() {
    return $info->likes;
  }

  function fan_name() {
    return $info->name;
  }
}

$fp = new fanpage(PAGE_ID);
?>

<div style="width:100px; height:100px; border:1px solid black;">
    Facebook Logo
</div>
<div class="fb_stats" id="fb_name">
    <?php echo $fp->fan_name()?>
</div>
<div class="fb_stats" id="fb_likes">
    <?php echo $fp->fan_count()?>
</div>

这样,您的服务器就不必调用Facebook来两次请求相同的信息:)