J
J
Jet22015-11-26 23:33:03
PHP
Jet2, 2015-11-26 23:33:03

PHP caching?

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

 <?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 новичек, особо не ругайтесь на говнокод. Если кто поможет, буду очень признателен!

Answer the question

In order to leave comments, you need to log in

1 answer(s)
J
Jet2, 2015-11-26
@Jet2

PHP started learning about 3 days ago, so I still don’t understand much,
if you remove the first one, file_put_contents($cache_date,$date);it is $cache_time
ignored, and there is always a json request
if you substitute $date in the place of $ url,

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

then the request is not executed

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question