写入文件后无法匹配JSON值

时间:2012-02-08 05:19:03

标签: php json caching

使用PHP,我以JSON数据的形式从社交网络(如Facebook和Twitter)中提取数据。我编写了一个脚本,可以将此JSON数据临时存储在缓存文件中。我在cron作业中使用此脚本,间歇性地检查社交网络服务器。

我们的想法是,只有在从服务器提取的当前JSON数据和已存储到缓存文件的JSON数据之间检测到更改时才更新缓存文件。

但是,使用下面的脚本,在初始运行之后,我无法有效地将实时JSON数据提要与存储的数据进行比较,导致脚本在每个周期写入缓存文件,而不管条件如何:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/cocacola'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$fb_json = curl_exec($ch);
curl_close($ch);

if(file_exists('caches/fb_feed.json')){
    $fb_cached_json = unserialize(file_get_contents('caches/fb_feed.json'));
}else{
    if($fb_json){
        file_put_contents('caches/fb_feed.json', serialize($fb_json));
    }
}

// these condition don't work
if($fb_json === $fb_cached_json){
    echo 'No changes needed...cache file not updated.';
}else if($fb_json){
    file_put_contents('caches/fb_feed.json', serialize($fb_json));
    echo 'Cache file updated successfully!';
}else{
    echo 'Houston, we have a problem!';
}

任何见解都将受到赞赏。提前谢谢!

0 个答案:

没有答案