Esempio n. 1
0
 public function getFiles($css, $srcPath)
 {
     $srcName = FileFolder::getFileName($srcPath);
     $newFolder = FileFolder::getPathFromFile($this->fileCss) . $srcName . "/";
     //---------------------------------------------------------
     $origSrcFolder = FileFolder::getPathFromFile($srcPath);
     //---------------------------------------------------------
     preg_match_all('/(url\\(\\"|url\\(\'|url\\(|src=\')(.*?)(\\)|\'|\\")/s', $css, $files);
     //---------------------------------------------------------
     foreach ($files[2] as $file_key => $origFilePath) {
         $fileAbPath = NULL;
         $newAbPath = NULL;
         $origFilePath = Compile::getBetweenQuot($origFilePath);
         //-----------------------------------------------------
         if (strpos($origFilePath, "../") !== false) {
             $goBack = explode("../", $origFilePath);
             $goBackAmt = sizeof($goBack);
             $srcFolderArr = explode("/", $origSrcFolder);
             $fileLocationArr = array_slice($srcFolderArr, 0, -$goBackAmt);
             $srcFolder = implode($fileLocationArr, "/") . "/";
             $filePath = end($goBack);
         } else {
             $srcFolder = $origSrcFolder;
             $filePath = $origFilePath;
             if (strpos($filePath, "http://") !== false) {
                 $fileAbPath = $filePath;
                 $filePath = FileFolder::getFileName($filePath, false);
                 $newFilePath = $newFolder . $filePath;
             }
         }
         //-----------------------------------------------------
         $filePath = FileFolder::getFileName($filePath, false, true);
         //-----------------------------------------------------
         if (is_null($fileAbPath)) {
             $fileAbPath = $srcFolder . $filePath;
         }
         if (is_null($newAbPath)) {
             $newAbPath = $newFolder . $filePath;
         }
         //-----------------------------------------------------
         $newFilePath = $srcName . "/" . $filePath;
         //-----------------------------------------------------
         if (file_exists(Import::uber_src_path() . $fileAbPath)) {
             $fileAbPath = Import::uber_src_path() . $fileAbPath;
         }
         //-----------------------------------------------------
         if ($fileContent = file_get_contents($fileAbPath)) {
             if (!file_get_contents($newAbPath)) {
                 $css = str_replace($origFilePath, $newFilePath, $css);
                 FileFolder::file_put_contents($newAbPath, $fileContent);
                 FileFolder::file_put_contents(Compile::$unminifiedPath . $this->cleanURL($fileAbPath), $fileContent);
             }
         }
     }
     return $css;
 }
Esempio n. 2
0
        foreach (self::$filesLoaded as &$value) {
            if ($file == $value) {
                $bool = false;
            }
        }
        //-------------------------------------------
        if (!file_exists(GenFun::get_local_url($file))) {
            throw new Exception($file . " does not exist ");
        }
        //-------------------------------------------
        if ($bool) {
            array_push(self::$filesLoaded, $file);
            if ($include) {
                include_once $file;
            }
        }
        //-------------------------------------------
        return $bool;
    }
}
//----------------------------------------------------------------------------
Import::$uber_src_path = dirname(__FILE__) . "/";
//----------------------------------------------------------------------------
if (file_exists("ProjectGlobal.php")) {
    Import::current("ProjectGlobal.php");
}
//----------------------------------------------------------------------------
require_once "server/werm/utils/Compile.php";
//----------------------------------------------------------------------------
Compile::go();
Esempio n. 3
0
 /**
  * 编译模板
  */
 public function compile()
 {
     //编译是否失效
     if (!$this->compileInvalid()) {
         return;
     }
     import('HDPHP.Lib.Driver.View.Hd.Compile');
     $assignVar = array_keys($this->vars);
     //assign分配的变量
     $compileObj = new Compile($this);
     $compileObj->run();
 }
Esempio n. 4
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getCompiles()
 {
     return $this->hasMany(Compile::className(), ['compile_grade_id' => 'grade_id']);
 }
Esempio n. 5
0
 /**
  * @brief init LogX 全局初始化方法
  *
  * @return void
  */
 public static function init()
 {
     // 输出 Logo
     if (isset($_GET['591E-D5FC-8065-CD36-D3E8-E45C-DB86-9197'])) {
         Response::logo();
     }
     // 非 DEBUG 模式下关闭错误输出
     if (defined('LOGX_DEBUG')) {
         error_reporting(E_ALL);
     } else {
         error_reporting(0);
     }
     // 设置自动载入函数
     function __autoLoad($className)
     {
         if (substr($className, -7) == 'Library' && is_file(LOGX_LIB . $className . '.php')) {
             @(require_once LOGX_LIB . $className . '.php');
         }
     }
     // 设置错误与异常处理函数
     set_error_handler(array(__CLASS__, 'error'));
     set_exception_handler(array(__CLASS__, 'exception'));
     // 运行环境检查
     if (!version_compare(PHP_VERSION, '5.0.0', '>=')) {
         throw new LogXException(sprintf(_t('LogX needs PHP 5.0.x or higher to run. You are currently running PHP %s.'), PHP_VERSION));
     }
     if (!version_compare(PHP_VERSION, '5.2.0', '>=')) {
         // 针对低版本 PHP 的兼容代码
         @(require_once LOGX_CORE . 'Compat.php');
     }
     // 设置语言
     if (defined('LOGX_LANGUAGE')) {
         Language::set(LOGX_LANGUAGE);
     } else {
         Language::set('zh-cn');
     }
     // 预编译核心文件
     global $coreFiles;
     if (!defined('LOGX_DEBUG') && !file_exists(LOGX_CACHE . '~core.php')) {
         Compile::build(LOGX_CACHE, $coreFiles, 'core');
     } elseif (!defined('LOGX_DEBUG')) {
         $file_time = filemtime(LOGX_CACHE . '~core.php');
         foreach ($coreFiles as $file) {
             if (filemtime($file) > $file_time) {
                 Compile::build(LOGX_CACHE, $coreFiles, 'core');
                 break;
             }
         }
     }
     self::$_globalVars = array('RUN' => array('TIME' => microtime(TRUE), 'MEM' => function_exists('memory_get_usage') ? memory_get_usage() : 0, 'LANG' => 'zh-cn'), 'SYSTEM' => array('OS' => PHP_OS, 'HTTP' => Request::S('SERVER_SOFTWARE', 'string'), 'PHP' => PHP_VERSION, 'MYSQL' => ''), 'SUPPORT' => array('MYSQL' => function_exists('mysql_connect'), 'GD' => function_exists('imagecreate'), 'MEMCACHE' => function_exists('memcache_connect'), 'SHMOP' => function_exists('shmop_open'), 'GZIP' => function_exists('ob_gzhandler'), 'TIMEZONE' => function_exists('date_default_timezone_set'), 'AUTOLOAD' => function_exists('spl_autoload_register')), 'INI' => array('ALLOW_CALL_TIME_PASS_REFERENCE' => ini_get('allow_call_time_pass_reference'), 'MAGIC_QUOTES_GPC' => ini_get('magic_quotes_gpc'), 'REGISTER_GLOBALS' => ini_get('register_globals'), 'ALLOW_URL_FOPEN' => ini_get('allow_url_fopen'), 'ALLOW_URL_INCLUDE' => ini_get('allow_url_include'), 'SAFE_MODE' => ini_get('safe_mode'), 'MAX_EXECUTION_TIME' => ini_get('max_execution_time'), 'MEMORY_LIMIT' => ini_get('memory_limit'), 'POST_MAX_SIZE' => ini_get('post_max_size'), 'FILE_UPLOADS' => ini_get('file_uploads'), 'UPLOAD_MAX_FILESIZE' => ini_get('upload_max_filesize'), 'MAX_FILE_UPLOADS' => ini_get('max_file_uploads')));
     // 清除不需要的变量,防止变量注入
     $defined_vars = get_defined_vars();
     foreach ($defined_vars as $key => $value) {
         if (!in_array($key, array('_POST', '_GET', '_COOKIE', '_SERVER', '_FILES'))) {
             ${$key} = '';
             unset(${$key});
         }
     }
     // 对用户输入进行转义处理
     if (!get_magic_quotes_gpc()) {
         $_GET = self::addSlashes($_GET);
         $_POST = self::addSlashes($_POST);
         $_COOKIE = self::addSlashes($_COOKIE);
     }
     // 开启输出缓存
     if (defined('LOGX_GZIP') && self::$_globalVars['SUPPORT']['GZIP']) {
         ob_start('ob_gzhandler');
     } else {
         ob_start();
     }
     // 连接到数据库
     Database::connect(DB_HOST, DB_USER, DB_PWD, DB_NAME, DB_PCONNECT);
     self::$_globalVars['SYSTEM']['MYSQL'] = Database::version();
     // 设定时区
     if (self::$_globalVars['SUPPORT']['TIMEZONE']) {
         date_default_timezone_set(OptionLibrary::get('timezone'));
     }
     // 连接到缓存
     Cache::connect(CACHE_TYPE);
     // 初始化路由表
     Router::init();
     // 初始化主题控制器
     Theme::init();
     // 初始化 Plugin
     Plugin::initPlugins();
     // 初始化全局组件
     Widget::initWidget('Global');
     Widget::initWidget('Widget');
     Widget::initWidget('Page');
     Widget::initWidget('User');
     // 尝试自动登录
     Widget::getWidget('User')->autoLogin();
     // 启动路由分发
     Router::dispatch();
 }