@Jet2

PHP кэширование?

День добрый Помогите найти проблему с кэшем.

 <?php
    $id_kp = '123456';
    $id = '999';
    $token='xxx';
    $cache_time = 5;
    $cache_date = "cache/$id_kp-date.txt";
    $servername="localhost";
    $username="test";
    $password="test";
    $dbname="test";
// проверка наличия файла, если время жизни норм. то выводим содержимое

      if (file_exists($cache_date)) {
        if ((time() - $cache_time) < filemtime($cache_date)) {
            echo file_get_contents($cache_date);
          exit; 
        }
      }
// Если время вышло или кеша нет то запрашиваем и сохраняем

    $json=json_decode(file_get_contents("http://moonwalk.cc/api/videos.json?kinopoisk_id=$id_kp&api_token=$token"));
    foreach($json as $item){
    $dates[]=$item->last_episode_time;
    }
    rsort($dates);
    $date=array_shift($dates);
    file_put_contents($cache_date,$date);
// Вот здесь проблема, как сделать так если содержимое кеша = $date то БД не трогаем, если не равно то пишем.

    $cache='';
    if(file_exists($cache_date)){
    $cache=file_get_contents($cache_date);
    } if($cache!=$url){
    file_put_contents($cache_date,$date);

    $conn=mysqli_connect($servername,$username,$password,$dbname);
    if(!$conn){
    die("Connection failed: ".mysqli_connect_error());
    }
    $sql="UPDATE dle_post SET date='$date' WHERE id=$id";if(mysqli_query($conn,$sql)){echo "good";}else {echo "bad";}
    mysqli_close($conn);
    }

    ?>
В php новичек, особо не ругайтесь на говнокод. Если кто поможет, буду очень признателен!
  • Вопрос задан
  • 436 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Jet2 Автор вопроса
PHP начал изучать дня 3 назад, так что еще не сильно разбираюсь

если убрать первый file_put_contents($cache_date,$date); то $cache_time
игнорируется, и постоянно идет запрос json

если в место $url подставить $date,
$cache='';
    if(file_exists($cache_date)){
    $cache=file_get_contents($cache_date);
    } if($cache!=$date){
    file_put_contents($cache_date,$date);


то запрос не выполняется
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы