• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/cache_files.php
  • Класс: CPHPCacheFiles
  • Вызов: CPHPCacheFiles::write
function write($arAllVars, $basedir, $initdir, $filename, $TTL)
{
	$folder = rtrim($_SERVER["DOCUMENT_ROOT"], "/")."/".ltrim($basedir.$initdir, "/");
	$fn = $folder.$filename;
	$tmp_fn = $folder.md5(mt_rand()).".tmp";

	if(!CheckDirPath($fn))
		return;

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

		$this->written = fwrite($handle, $contents);
		$this->path = $fn;
		$len = function_exists('mb_strlen')? mb_strlen($contents, 'latin1') : mb_strlen($contents);

		fclose($handle);

		$this->_unlink($fn);

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

		$this->_unlink($tmp_fn);
	}
}