forked from blallo/rss-bridge
[contents] Use FileCache for getSimpleHTMLDOMCached
This commit is contained in:
parent
8fb4db8914
commit
b6feda2377
1 changed files with 14 additions and 20 deletions
|
@ -103,30 +103,24 @@ function getSimpleHTMLDOMCached($url
|
||||||
){
|
){
|
||||||
debugMessage('Caching url ' . $url . ', duration ' . $duration);
|
debugMessage('Caching url ' . $url . ', duration ' . $duration);
|
||||||
|
|
||||||
$filepath = __DIR__ . '/../cache/pages/' . sha1($url) . '.cache';
|
// Initialize cache
|
||||||
debugMessage('Cache file ' . $filepath);
|
$cache = Cache::create('FileCache');
|
||||||
|
$cache->setPath(CACHE_DIR . '/pages');
|
||||||
|
$cache->purgeCache(86400); // 24 hours (forced)
|
||||||
|
|
||||||
if(file_exists($filepath) && filectime($filepath) < time() - $duration){
|
$params = [$url];
|
||||||
unlink ($filepath);
|
$cache->setParameters($params);
|
||||||
debugMessage('Cached file deleted: ' . $filepath);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(file_exists($filepath)){
|
|
||||||
debugMessage('Loading cached file ' . $filepath);
|
|
||||||
touch($filepath);
|
|
||||||
$content = file_get_contents($filepath);
|
|
||||||
} else {
|
|
||||||
debugMessage('Caching ' . $url . ' to ' . $filepath);
|
|
||||||
$dir = substr($filepath, 0, strrpos($filepath, '/'));
|
|
||||||
|
|
||||||
if(!is_dir($dir)){
|
|
||||||
debugMessage('Creating directory ' . $dir);
|
|
||||||
mkdir($dir, 0777, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// Determine if cached file is within duration
|
||||||
|
$time = $cache->getTime();
|
||||||
|
if($time !== false
|
||||||
|
&& (time() - $duration < $time)
|
||||||
|
&& (!defined('DEBUG') || DEBUG !== true)){ // Contents within duration
|
||||||
|
$content = $cache->loadData();
|
||||||
|
} else { // Content not within duration
|
||||||
$content = getContents($url, $use_include_path, $context, $offset, $maxLen);
|
$content = getContents($url, $use_include_path, $context, $offset, $maxLen);
|
||||||
if($content !== false){
|
if($content !== false){
|
||||||
file_put_contents($filepath, $content);
|
$cache->saveData($content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue