Как кешировать XML-файл в PHP? - PullRequest
       29

Как кешировать XML-файл в PHP?

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

Я получаю файл XML с удаленного сервера, который содержит довольно статические данные. Вот мой код:

$dom = simplexml_load_file("foo.xml");

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

Поскольку данные редко меняются, нет необходимости пинговать сервер при каждой загрузке страницы ... Как я могу кешировать foo.xml простым способом? Имейте в виду, что я новичок ...

Спасибо!

1 Ответ

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

Очень упрощенный кэш будет хранить файл XML в каталоге и обновляться каждый час или около того.

$cacheName = 'somefile.xml.cache';
// generate the cache version if it doesn't exist or it's too old!
$ageInSeconds = 3600; // one hour
if(!file_exists($cacheName) || filemtime($cacheName) > time() + $ageInSeconds) {
  $contents = file_get_contents('http://www.something.com/foo.xml');
  file_put_contents($cacheName, $contents);
}

$dom = simplexml_load_file($cacheName);
// ...

примечание: это, конечно, предполагает несколько вещей, таких как файл был успешно создан, удаленныйфайл успешно загружен и т. д.

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