• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/data/cacheenginefiles.php
  • Класс: BitrixMainDataCacheEngineFiles
  • Вызов: CacheEngineFiles::write
public function write($vars, $baseDir, $initDir, $filename, $ttl)
{
	static $search = array("\", "'", "");
	static $replace = array("\\", "\'", "'.chr(0).'");
	$documentRoot = MainLoader::getDocumentRoot();
	$folder = $documentRoot."/".ltrim($baseDir.$initDir, "/");
	$fn = $folder.$filename;
	$fnTmp = $folder.md5(mt_rand()).".tmp";

	if (!CheckDirPath($fn))
		return;

	if ($handle = fopen($fnTmp, "wb+"))
	{
		if (is_array($vars))
		{
			$contents = "";
		}
		else
		{
			$contents = "BX".str_pad(time(), 12, "0", STR_PAD_LEFT).str_pad(time() + intval($this->ttl), 12, "0", STR_PAD_LEFT);
			$contents .= $vars;
		}

		$this->written = fwrite($handle, $contents);
		$this->path = $fn;
		$len = strlen($contents);

		fclose($handle);

		static::unlink($fn);

		if ($this->written === $len)
			rename($fnTmp, $fn);

		static::unlink($fnTmp);

		if ($this->useLock)
		{
			$this->unlock($fn);
		}
	}
}