• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/backup.php
  • Класс: CBackup
  • Вызов: CBackup::skipMask
static function skipMask($abs_path)
{
	global $skip_mask_array;

	if (!IntOption('skip_mask'))
		return false;

	if (!is_array($skip_mask_array))
	{
		return false;
	}

	$path = mb_substr($abs_path, mb_strlen(self::$DOCUMENT_ROOT_SITE));
	$path = str_replace('\','/',$path);

	static $preg_mask_array;
	if (!$preg_mask_array)
	{
		$preg_mask_array = array();
		foreach($skip_mask_array as $a)
			$preg_mask_array[] = CBackup::_preg_escape($a);
	}

	foreach($skip_mask_array as $k => $mask)
	{
		if (strpos($mask, '/') === 0) // absolute path
		{
			if (strpos($mask, '*') === false) // нет звездочки
			{
				if (mb_strpos($path.'/', $mask.'/') === 0)
					return true;
			}
			elseif (preg_match('#^'.str_replace('*','[^/]*?',$preg_mask_array[$k]).'$#i',$path))
				return true;
		}
		elseif (strpos($mask, '/') === false)
		{
			if (strpos($mask, '*') === false)
			{
				if (mb_substr($path, -mb_strlen($mask)) == $mask)
					return true;
			}
			elseif (preg_match('#/[^/]*'.str_replace('*','[^/]*?',$preg_mask_array[$k]).'$#i',$path))
				return true;
		}
	}
}