Server : nginx/1.22.1
System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/www.jkmold.com/phpsso_server/phpcms/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/phpsso_server/phpcms/base.php
<?php

/**

 *  base.php PHPCMS框架入口文件

 *

 * @copyright			(C) 2005-2010 PHPCMS

 * @license				http://www.phpcms.cn/license/

 * @lastmodify			2010-6-7

 */

define('IN_PHPCMS', true);



//PHPCMS框架路径

define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);



if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH', PC_PATH.'..'.DIRECTORY_SEPARATOR);



//缓存文件夹地址

define('CACHE_PATH', PC_PATH.'..'.DIRECTORY_SEPARATOR.'caches'.DIRECTORY_SEPARATOR);

//主机协议

define('SITE_PROTOCOL', isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://');

//当前访问的主机名

define('SITE_URL', (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''));

//来源

define('HTTP_REFERER', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');



//系统开始时间

define('SYS_START_TIME', microtime());



//加载公用函数库

pc_base::load_sys_func('global');

pc_base::load_config('system','errorlog') ? set_error_handler('my_error_handler') : error_reporting(E_ERROR | E_WARNING | E_PARSE);

//设置本地时差

function_exists('date_default_timezone_set') && date_default_timezone_set(pc_base::load_config('system','timezone'));



define('CHARSET' ,pc_base::load_config('system','charset'));

//输出页面字符集

header('Content-type: text/html; charset='.CHARSET);



define('SYS_TIME', time());

//定义网站根路径

define('WEB_PATH',pc_base::load_config('system','web_path'));

//js 路径

define('JS_PATH',pc_base::load_config('system','js_path'));

//css 路径

define('CSS_PATH',pc_base::load_config('system','css_path'));

//img 路径

define('IMG_PATH',pc_base::load_config('system','img_path'));

//动态程序路径

define('APP_PATH',pc_base::load_config('system','app_path'));



if(pc_base::load_config('system','gzip') && function_exists('ob_gzhandler')) {

	ob_start('ob_gzhandler');

} else {

	ob_start();

}



class pc_base {

	

	/**

	 * 初始化应用程序

	 */

	public static function creat_app() {

		return self::load_sys_class('application');

	}

	/**

	 * 加载系统类方法

	 * @param string $classname 类名

	 * @param string $path 扩展地址

	 * @param intger $initialize 是否初始化

	 */

	public static function load_sys_class($classname, $path = '', $initialize = 1) {

			return self::_load_class($classname, $path, $initialize);

	}

	

	/**

	 * 加载应用类方法

	 * @param string $classname 类名

	 * @param string $m 模块

	 * @param intger $initialize 是否初始化

	 */

	public static function load_app_class($classname, $m = '', $initialize = 1) {

		$m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;

		if (empty($m)) return false;

		return self::_load_class($classname, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'classes', $initialize);

	}

	

	/**

	 * 加载数据模型

	 * @param string $classname 类名

	 */

	public static function load_model($classname) {

		return self::_load_class($classname,'model');

	}

		

	/**

	 * 加载类文件函数

	 * @param string $classname 类名

	 * @param string $path 扩展地址

	 * @param intger $initialize 是否初始化

	 */

	private static function _load_class($classname, $path = '', $initialize = 1) {

		static $classes = array();

		if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'classes';

		$key = md5($path.$classname);

		if (isset($classes[$key])) {

			if (!empty($classes[$key])) {

				return $classes[$key];

			} else {

				return true;

			}

		}

		if (file_exists(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {

			include PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php';

			$name = $classname;

			if ($my_path = self::my_path(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {

				include $my_path;

				$name = 'MY_'.$classname;

			}

			if ($initialize) {

				$classes[$key] = new $name;

			} else {

				$classes[$key] = true;

			}

			return $classes[$key];

		} else {

			return false;

		}

	}

	

	/**

	 * 加载系统的函数库

	 * @param string $func 函数库名

	 */

	public static function load_sys_func($func) {

		return self::_load_func($func);

	}

	

	/**

	 * 加载应用函数库

	 * @param string $func 函数库名

	 * @param string $m 模型名

	 */

	public static function load_app_func($func, $m = '') {

		$m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;

		if (empty($m)) return false;

		return self::_load_func($func, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'functions');

	}

	

	/**

	 * 加载函数库

	 * @param string $func 函数名

	 * @param string $path 地址

	 */

	private static function _load_func($func, $path = '') {

		static $funcs = array();

		if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'functions';

		$path .= DIRECTORY_SEPARATOR.$func.'.func.php';

		$key = md5($path);

		if (isset($funcs[$key])) return true;

		if (file_exists(PC_PATH.$path)) {

			include PC_PATH.$path;

		} else {

			$funcs[$key] = false;

			return false;

		}

		$funcs[$key] = true;

		return true;

	}

	

	/**

	 * 是否有自己的扩展文件

	 * @param string $filepath 路径

	 */

	public static function my_path($filepath) {

		$path = pathinfo($filepath);

		if (file_exists($path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'])) {

			return $path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'];

		} else {

			return false;

		}

	}

	

	/**

	 * 加载配置文件

	 * @param string $file 配置文件

	 * @param string $key  要获取的配置荐

	 * @param string $default  默认配置。当获取配置项目失败时该值发生作用。

	 * @param boolean $reload 强制重新加载。

	 */

	public static function load_config($file, $key = '', $default = '', $reload = false) {

		static $configs = array();

		if (!$reload && isset($configs[$file])) {

			if (empty($key)) {

				return $configs[$file];

			} elseif (isset($configs[$file][$key])) {

				return $configs[$file][$key];

			} else {

				return $default;

			}

		}

		$path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php';

		if (file_exists($path)) {

			$configs[$file] = include $path;

		}

		if (empty($key)) {

			return $configs[$file];

		} elseif (isset($configs[$file][$key])) {

			return $configs[$file][$key];

		} else {

			return $default;

		}

	}

}