<?php 
// 检查安装环境
function check_env(){
	$items = array(
		'os'	  => array('操作系统', '不限制', '类Unix', PHP_OS, true),
		'php'	 => array('PHP版本', '5.3', '5.3+', PHP_VERSION, true),
		'upload'  => array('附件上传', '不限制', '2M+', '未知', true),
		'gd'	  => array('GD库', '2.0', '2.0+', '未知', true),
		'disk'	=> array('磁盘空间', '5M', '不限制', '未知', true),
	);

	//PHP环境检测
	if($items['php'][3] < $items['php'][1]){
		$items['php'][4] = false;
		session('error', true);
	}

	//附件上传检测
	if(@ini_get('file_uploads'))
		$items['upload'][3] = ini_get('upload_max_filesize');

	//GD库检测
	$tmp = function_exists('gd_info') ? gd_info() : array();
	if(empty($tmp['GD Version'])){
		$items['gd'][3] = '未安装';
		$items['gd'][4] = false;
		session('error', true);
	} else {
		$items['gd'][3] = $tmp['GD Version'];
	}
	unset($tmp);

	//磁盘空间检测
	if(function_exists('disk_free_space')) {
		$items['disk'][3] = floor(disk_free_space(realpath('./') . DIRECTORY_SEPARATOR) / (1024*1024)).'M';
	}

	return $items;
}

/**
 * 目录，文件读写检测
 * @return array 检测数据
 */
function check_dirfile(){
	$items = array(
		array('dir',  '可写', true, './Uploads'),
		array('dir',  '可写', true, './Runtime'),
		array('dir', '可写', true, './Application/Admin/Conf'),
		array('dir', '可写', true, './Application/Common/Conf'),
		// array('dir', '可写', true, './Application/Home/Conf'),
	);

	foreach ($items as &$val) {
		$item =	realpath('./') . DIRECTORY_SEPARATOR . $val[3];
		if('dir' == $val[0]){
			if(!is_writable($item)) {
				if(is_dir($items)) {
					$val[1] = '可读';
					$val[2] = false;
					session('error', true);
				} else {
					$val[1] = '不存在';
					$val[2] = false;
					session('error', true);
				}
			}
		} else {
			if(file_exists($item)) {
				if(!is_writable($item)) {
					$val[1] = '不可写';
					$val[2] = false;
					session('error', true);
				}
			} else {
				if(!is_writable(dirname($item))) {
					$val[1] = '不存在';
					$val[2] = false;
					session('error', true);
				}
			}
		}
	}

	return $items;
}

/**
 * 函数检测
 * @return array 检测数据
 */
function check_func(){
	$items = array(
		array('pdo','支持',true,'类'),
		array('pdo_mysql','支持',true,'模块'),
		array('file_get_contents', '支持', true,'函数'),
		array('mb_strlen',		   '支持', true,'函数'),
	);

	foreach ($items as &$val) {
		if(('类'==$val[3] && !class_exists($val[0]))
			|| ('模块'==$val[3] && !extension_loaded($val[0]))
			|| ('函数'==$val[3] && !function_exists($val[0]))
			){
			$val[1] = '不支持';
			$val[2] = 'error';
			session('error', true);
		}
	}

	return $items;
}