예제 #1
0
파일: Version.php 프로젝트: pscheit/psc-cms
 /**
  * Scannt ein Verzeichnis nach einem Dateipattern und
  * vergleicht dabei die Versionen um die aktuellste Version dieser Datei zurückgeben zu können
  *
  * Als Beispiel:
  * jquery-1.3.2.min.js
  * jquery-1.4.1.min.js
  * jquery-1.5.1.min.js
  * jquery-1.5.2.min.js
  *
  * gibt logischerweise jquery-1.5.2.min.js zurück
  *
  * @param string $directory das Verzeichnis (mit trailingsslash) welches durchsucht werden soll
  * @param string $search sollte der String am Anfang der Datei sein. Dies kann auch eine regexp sein (mit / umschlossen)
  * @param array $fileRegexps können zusätzliche reguläre Ausdrücke sein um aus einer Datei den Versionsstring herauszubekommen, diese werden benutzt, wenn das normale vorgehen (match ((?:[0-9]\.)+[0-9]) scheitert
  */
 public static function getLatestFileVersion($directory, $search, array $fileRegexps = array())
 {
     $standardRx = '/((?:[0-9]\\.)+[0-9])/';
     $files = glob($directory . '*.*');
     $maxFile = NULL;
     $maxVersion = 0;
     $searchRx = S::startsWith($search, '/') ? $search : '/^' . $search . '/';
     foreach ($files as $file) {
         $fileName = basename($file);
         if (preg::match($fileName, $searchRx) > 0) {
             if (($version = preg::qmatch($fileName, $standardRx, 1)) == '') {
                 foreach ($fileRegexps as $fileRx) {
                     if (($version = preg::qmatch($fileName, $fileRegexps)) != '') {
                         break;
                     }
                 }
             }
             if ($version == '') {
                 throw new Exception('Für Datei: "' . $fileName . '" konnte keine Version extrahiert werden');
             }
             if (version_compare($version, $maxVersion, '>')) {
                 $maxVersion = $version;
                 $maxFile = $file;
             }
         }
     }
     return array($maxFile, $maxVersion);
 }
예제 #2
0
session_start();
define('ITPANEL', true);
define('ROOT', dirname(__FILE__) . '/');
define('TPL', ROOT . 'template/');
include_once ROOT . 'system/config.php';
include_once ROOT . 'system/classes/db.class.php';
include_once ROOT . 'system/classes/system.class.php';
include_once ROOT . 'system/classes/preg.class.php';
include_once ROOT . 'system/classes/user.class.php';
include_once ROOT . 'system/classes/logs.class.php';
if (DEBUG_MODE == 1) {
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
}
if (!preg::ip($_SERVER['REMOTE_ADDR'])) {
    die('Ошибка #3');
}
$db = new db(DBHOST, DBUSER, DBPASS, DBNAME);
if (@$_SESSION['user_id'] and @$_SESSION['user_login'] and @$_SESSION['user_password']) {
    $user = new user($_SESSION['user_id']);
    if ($_SESSION['user_ip'] != 0) {
        if ($_SESSION['user_ip'] != $_SERVER['REMOTE_ADDR']) {
            $user->logout();
        }
    }
    if ($user->getBlock()) {
        $user->logout();
    }
}
@($action = System::clear($_GET['action']));