Невозможно сопоставить значения JSON после записи в файл - PullRequest
0 голосов
/ 08 февраля 2012

Используя PHP, я извлекаю фиды из социальных сетей, таких как Facebook и Twitter, в виде данных JSON. Я написал скрипт, который временно хранит эти данные 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!';
}

Любое понимание будет оценено. Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...