Esempio n. 1
0
	public static function skipMask($abs_path)
	{
		if (!IntOption('skip_mask'))
			return false;

		global $skip_mask_array;
		
		$path = substr($abs_path,strlen(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); 
		}

		reset($skip_mask_array);
		foreach($skip_mask_array as $k => $mask)
		{
			if (strpos($mask,'/')===0) // absolute path
			{
				if (strpos($mask,'*') === false) // нет звездочки 
				{
					if (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 (substr($path,-strlen($mask)) == $mask)
						return true;
				}
				elseif (preg_match('#/[^/]*'.str_replace('*','[^/]*?',$preg_mask_array[$k]).'$#i',$path))
					return true;
			}
		}
	}
Esempio n. 2
0
 function skipMask($abs_path)
 {
     if (!IntOption('skip_mask')) {
         return false;
     }
     global $skip_mask_array;
     $path = substr($abs_path, 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);
         }
     }
     reset($skip_mask_array);
     foreach ($skip_mask_array as $k => $mask) {
         if (strpos($mask, '/') === 0) {
             if (strpos($mask, '*') === false) {
                 if (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 (substr($path, -strlen($mask)) == $mask) {
                     return true;
                 }
             } elseif (preg_match('#/[^/]*' . str_replace('*', '[^/]*?', $preg_mask_array[$k]) . '$#i', $path)) {
                 return true;
             }
         }
     }
 }
Esempio n. 3
0
	function prepare_preg_escape($arSkipMask)
	{
		static $res;
		if (!isset($res))
			foreach($arSkipMask as $a)
				$res[] = CBackup::_preg_escape($a); 
		return $res;
	}