- Модуль: 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;
}
}
}