本文整理汇总了PHP中files::touch方法的典型用法代码示例。如果您正苦于以下问题:PHP files::touch方法的具体用法?PHP files::touch怎么用?PHP files::touch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类files
的用法示例。
在下文中一共展示了files::touch方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: withCache
/**
* Cache content
*
* Returns feedParser object from cache if present or write it to cache and
* returns result.
*
* @param string $url Feed URL
* @return feedParser
*/
protected function withCache($url)
{
$url_md5 = md5($url);
$cached_file = sprintf('%s/%s/%s/%s/%s.php', $this->cache_dir, $this->cache_file_prefix, substr($url_md5, 0, 2), substr($url_md5, 2, 2), $url_md5);
$may_use_cached = false;
if (@file_exists($cached_file)) {
$may_use_cached = true;
$ts = @filemtime($cached_file);
if ($ts > strtotime($this->cache_ttl)) {
# Direct cache
return unserialize(file_get_contents($cached_file));
}
$this->setValidator('IfModifiedSince', $ts);
}
if (!$this->getFeed($url)) {
if ($may_use_cached) {
# connection failed - fetched from cache
return unserialize(file_get_contents($cached_file));
}
return false;
}
switch ($this->getStatus()) {
case '304':
@files::touch($cached_file);
return unserialize(file_get_contents($cached_file));
case '200':
if ($feed = new feedParser($this->getContent())) {
try {
files::makeDir(dirname($cached_file), true);
} catch (Exception $e) {
return $feed;
}
if ($fp = @fopen($cached_file, 'wb')) {
fwrite($fp, serialize($feed));
fclose($fp);
files::inheritChmod($cached_file);
}
return $feed;
}
}
return false;
}
示例2: withCache
/**
* Get repository modules list using cache.
*
* @param string $url XML feed URL
* @return array Feed content or False on fail
*/
protected function withCache($url)
{
$url_md5 = md5($url);
$cached_file = sprintf('%s/%s/%s/%s/%s.ser', $this->cache_dir, $this->cache_file_prefix, substr($url_md5, 0, 2), substr($url_md5, 2, 2), $url_md5);
$may_use_cached = false;
# Use cache file ?
if (@file_exists($cached_file) && !$this->force) {
$may_use_cached = true;
$ts = @filemtime($cached_file);
if ($ts > strtotime($this->cache_ttl)) {
# Direct cache
return unserialize(file_get_contents($cached_file));
}
$this->setValidator('IfModifiedSince', $ts);
}
# Query repository
if (!$this->getModulesXML($url)) {
if ($may_use_cached) {
# Touch cache TTL even if query failed ?
if ($this->cache_touch_on_fail) {
@files::touch($cached_file);
}
# Connection failed - fetched from cache
return unserialize(file_get_contents($cached_file));
}
return false;
}
# Parse response
switch ($this->getStatus()) {
# Not modified, use cache
case '304':
@files::touch($cached_file);
return unserialize(file_get_contents($cached_file));
# Ok, parse feed
# Ok, parse feed
case '200':
if ($modules = new dcStoreParser($this->getContent())) {
try {
files::makeDir(dirname($cached_file), true);
} catch (Exception $e) {
return $modules;
}
if ($fp = @fopen($cached_file, 'wb')) {
fwrite($fp, serialize($modules));
fclose($fp);
files::inheritChmod($cached_file);
}
return $modules;
}
}
return false;
}