Как создать функцию кэширования PHP? - PullRequest
0 голосов
/ 02 августа 2011

У меня есть следующий код:

<?php

$items = simplexml_load_file("http://foo.xml");

foreach ($items->bar->baz as $item) {
echo $item;
}
?>

Я хочу кэшировать XML-файл, поэтому мне сказали использовать:

$cacheName = "foo.xml.cache";

// generate the cache version if it doesn't exist or it's too old!
$ageInSeconds = 24 * 60 * 60; // one day

if (!file_exists($cacheName) || filemtime($cacheName) > time() + $ageInSeconds)
{ 
$contents = file_get_contents("http://foo.xml");
    file_put_contents($cacheName, $contents);
}

$dom = simplexml_load_file($cacheName);

Я попытался создать функцию, вызываемую для вызовапрямо перед циклом foreach.Как я могу это сделать?Спасибо!

1 Ответ

2 голосов
/ 02 августа 2011

Я думаю, что это выражение задом наперед:

filemtime($cacheName) > time() + $ageInSeconds

Я думаю, что это должно быть

filemtime($cacheName) + $ageInSeconds < time()

или, что эквивалентно:

filemtime($cacheName) < time() - $ageInSeconds
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...