function ldSetCache($file, $time, $image, $headers) { global $store; debug("ldSetCache({$file}, {$time}, [image], [headers])", "object"); if ($time == -2) { $time = 0; } else { $time = time() + $time * 3600; } if (!preg_match("/\\.\\./", $file)) { if ($image) { $path = substr($file, 1, strrpos($file, "/") - 1); if (!file_exists($store->get_config("files") . "cache/" . $path)) { ldMkDir("cache/" . $path); ldMkDir("cacheheaders/" . $path); } $imagetemp = tempnam($store->get_config("files") . "cache/" . $path . "/", "ARCacheImage"); $headertemp = tempnam($store->get_config("files") . "cacheheaders/" . $path . "/", "ARCacheImage"); $fileimage = $store->get_config("files") . "cache" . $file; $fileheaders = $store->get_config("files") . "cacheheaders" . $file; $fpi = @fopen($imagetemp, "wb"); $fph = @fopen($headertemp, "wb"); if ($fpi && $fph) { fwrite($fph, $headers); fclose($fph); $imagesize = fwrite($fpi, $image); fclose($fpi); if (!touch($imagetemp, $time)) { debug("ldSetCache: ERROR: couldn't touch image", "object"); } if (filesize($imagetemp) == $imagesize) { rename($headertemp, $fileheaders); rename($imagetemp, $fileimage); } else { @unlink($imagetemp); @unlink($headertemp); } } else { if ($fpi) { fclose($fpi); @unlink($imagetemp); } if ($fph) { fclose($fph); @unlink($headertemp); } } } } }
function ldSetCache($file, $time, $image, $headers) { global $store; debug("ldSetCache({$file}, {$time}, [image], [headers])", "object"); if ($time == -2) { $time = 0; } else { $time = time() + $time * 3600; } if (!preg_match("/\\.\\./", $file)) { if ($image) { $path = substr($file, 1, strrpos($file, "/") - 1); if (!file_exists($store->get_config("files") . "cache/" . $path)) { ldMkDir("cache/" . $path); ldMkDir("cacheheaders/" . $path); } $fp = fopen($store->get_config("files") . "cache" . $file, "wb"); fwrite($fp, $image); fclose($fp); $fp = fopen($store->get_config("files") . "cacheheaders" . $file, "wb"); fwrite($fp, $headers); fclose($fp); if (!touch($store->get_config("files") . "cache" . $file, $time)) { debug("ldSetCache: ERROR: couldn't touch image", "object"); } } } }