使用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!';
}
任何见解都将受到赞赏。提前谢谢!