#php #caching #rss
#php #кэширование #RSS-канал
Вопрос:
Хорошо, итак, у меня есть эти требования, которые мне нужны, и я действительно не знаю, с чего начать. Вот что у меня есть
Что мне нужно, так это некоторый PHP-код, который будет извлекать последнюю статью из RSS-канала из блога WordPress. Когда PHP захватит RSS-канал, кэшируйте его и ищите более новую версию, если кэш пуст или если прошло 24 часа. Мне нужно, чтобы этот код был довольно полным доказательством и мог запускаться без базы данных за ним. Можете ли вы просто кэшировать результаты RSS в памяти?
Я нашел это, но я не уверен, что это будет полезно в данной ситуации…Что я ищу, так это хорошее руководство о том, что / как я могу это сделать. И если там уже есть инструмент, который может помочь с этим…
Заранее спасибо
Комментарии:
1. ИТАК, речь идет о программировании, а не о покупках.
2. Я программист… я просто хотел бы получить некоторое представление о том, какие инструменты будут хорошо подходить для этого
3. вы могли бы легко создать что-то размером менее 100 строк, запустить скрипт для размещения содержимого или кэшировать канал и использовать md5_file, чтобы проверить, был ли он изменен, а затем разместить его
Ответ №1:
Итак, если вы хотите кэшировать сам канал, было бы довольно просто сделать это с помощью обычного текстового файла. Что-то вроде этого должно сработать:
$validCache = false;
if (file_exists('rss_cache.txt')) {
$contents = file_get_contents('rss_cache.txt');
$data = unserialize($contents);
if (time() - $data['created'] < 24 * 60 * 60) {
$validCache = true;
$feed = $data['feed'];
}
}
if (!$validCache) {
$feed = file_get_contents('http://example.com/feed.rss');
$data = array('feed' => $feed, 'created' => time());
file_put_contents('rss_cache.txt', serialize($data));
}
Затем вы могли бы получить доступ к содержимому RSS-канала с помощью $feed
. Если вы хотите кэшировать саму статью, изменения должны быть довольно очевидными.
Комментарии:
1. Итак, вопрос… проверяет ли первый if, находится ли файл rss_cache.txt exists..so я предполагаю, что это файл, в котором будут храниться RSS-каналы
2. Да,
rss_cache.txt
содержит содержимое канала и время создания кэша.3. может быть, это очевидно, но как мне получить только последний блог WordPress… это тянет за последние 3 или 4
4. @Tamer Проанализируйте его с помощью инструментов синтаксического анализа DOM. Это зависит от того, чего вы хотите.