<?php
/*
More & Original PHP Framwork
Copyright (c) 2007 - 2008 IsMole Inc.
$Id: MooPHP.php 101 2008-04-14 02:51:46Z kimi $
*/
define('IN_MOOPHP', TRUE);
//note MooPHP的核心版本,例如:0.0.1
define('MOOPHP_VERSION', '0.0.1');
//note 正在被访问的文件路径,例如:D:\web\MooPHP
define('MOOPHP_ROOT', substr(__FILE__, 0, -11));
//note 正在被访问的文件URL,例如:http://www.ccvita.com/MooPHP
define('MOOPHP_URL', strtolower(substr($_SERVER['SERVER_PROTOCOL'], 0, strpos($_SERVER['SERVER_PROTOCOL'], '/'))).'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')));
define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
!defined('MOOPHP_TEMPLATE_DIR') && define('MOOPHP_TEMPLATE_DIR', 'Moo-templates');
!defined('MOOPHP_TEMPLATE_COMPLIE_DIR') && define('MOOPHP_TEMPLATE_COMPLIE_DIR', 'Moo-data/templates');
!defined('MOOPHP_TEMPLATE_URL') && define('MOOPHP_TEMPLATE_URL', MOOPHP_URL.'/template');
// 定义指示 PHP4 或 PHP5 的常量
if(substr(PHP_VERSION, 0, 1) == '5') {
define('PHP5', true);
define('PHP4', false);
} else {
define('PHP5', false);
define('PHP4', true);
}
//note 禁止对全局变量注入
if (isset($_REQUEST['GLOBALS']) OR isset($_FILES['GLOBALS'])) {
exit('Request tainting attempted.');
}
//note MooPHP基础量保存数组
$_MooPHP = array();
//note 初始化类保存变量
$_MooClass = array();
//note 初始化Block保存变量
$_MooBlock = array();
//note 数据库信息初始化
$dbHost = $dbName = $dbUser = $dbPasswd = $dbPconnect = '';
//require_once MOOPHP_ROOT.'/MooConfig.php';
//note 对GPC变量进行安全处理
if (!MAGIC_QUOTES_GPC) {
$_GET = MooAddslashes($_GET);
$_POST = MooAddslashes($_POST);
$_COOKIE = MooAddslashes($_COOKIE);
$_REQUEST = MooAddslashes($_REQUEST);
$_SERVER = MooAddslashes($_SERVER);
$_FILES = MooAddslashes($_FILES);
}
/**
* 自动加载默认类文件函数,并将其初始化
* @param string $classname - 类名
* @return class
*/
function MooAutoLoad($classname) {
global $_MooClass;
if($_MooClass[$classname]) {
return $_MooClass[$classname];
} else {
require_once MOOPHP_ROOT.'/libraries/'.$classname.'.class.php';
$_MooClass[$classname]= & new $classname;
return $_MooClass[$classname];
}
}
/**
* 为变量或者数组添加转义
* @param string $value - 字符串或者数组变量
* @return array
*/
function MooAddslashes($value, $force = 0) {
return $value = is_array($value) ? array_map('MooAddslashes', $value) : addslashes($value);
}
/**
* 模块函数
* @param string $type - 类型
* @param string $name - 结果集的数组名称
* @param string $param - 参数
* @return array
*/
function MooBlock($type, $name, $param) {
global $_MooBlock, $dbHost, $dbName, $dbUser, $dbPasswd, $dbPconnect;
if($type == 'sql') {
$db = MooAutoLoad('MooMySQL');
$db->connmysql($dbHost, $dbName, $dbUser, $dbPasswd, $dbPconnect);
$_MooBlock[$name] = $db->getAll($param);
return $_MooBlock[$name];
} elseif ($type == 'newslist') {
}
return $resultarray;
}
/**
* 根据中文裁减字符串
* @param string $_string - 待截取的字符串
* @param integer $_length - 截取字符串的长度
* @param string $_dot - 缩略后缀
* @return string 返回带省略号被裁减好的字符串
*/
function MooCutstr($_string, $_length, $_dot = ' ...') {
global $charset;
if(strlen($_string) <= $_length) {
return $_string;
}
$_string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $_string);
$_strcut = '';
if(strtolower($charset) == 'utf-8') {
$n = $tn = $noc = 0;
while($n < strlen($_string)) {
$t = ord($_string[$n]);
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1; $n++; $noc++;
} elseif(194 <= $t && $t <= 223) {
$tn = 2; $n += 2; $noc += 2;
} elseif(224 <= $t && $t < 239) {
$tn = 3; $n += 3; $noc += 2;
} elseif(240 <= $t && $t <= 247) {
$tn = 4; $n += 4; $noc += 2;
} elseif(248 <= $t && $t <= 251) {
$tn = 5; $n += 5; $noc += 2;
} elseif($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} else {
$n++;
}
if($noc >= $_length) {
break;
}
}
if($noc > $_length) {
$n -= $tn;
}
$_strcut = substr($_string, 0, $n);
} else {
for($i = 0; $i < $_length; $i++) {
$_strcut .= ord($_string[$i]) > 127 ? $_string[$i].$_string[++$i] : $_string[$i];
}
}
$_strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $_strcut);
return $_strcut.$_dot;
}
/**
* 获取GPC变量。对于type为ini的变量强制转化为数字型
* @param string $_key - 权限表达式
* @param string $_type - integer 数字类型;string 字符串类型;array 数组类型
* @param string $_var - R $_REQUEST变量;G $_GET变量;P $_POST变量;C $_COOKIE变量
* @return string
*/
function MooGetGPC($_key, $_type = 'integer', $_var = 'R') {
switch($_var) {
case 'G': $_var = &$_GET; break;
case 'P': $_var = &$_POST; break;
case 'C': $_var = &$_COOKIE; break;
case 'R': $_var = &$_REQUEST; break;
}
switch($_type) {
case 'integer':
$_return = intval($_var[$_key]);
break;
case 'string':
$_return = isset($_var[$_key]) ? $_var[$_key] : NULL;
break;
case 'array':
$_return = isset($_var[$_key]) ? $_var[$_key] : array();
break;
default:
$_return = intval($_var[$_key]);
}
return $_return;
}
/**
* 将特殊字符转成 HTML 格式。比如<a href='test'>Test</a>转换为<a href='test'>Test</a>
* @param $value - 字符串或者数组变量
* @return array
*/
function MooHtmlspecialchars($value) {
return is_array($value) ? array_map('MooHtmlspecialchars', $value) : preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1', str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $value));
}
/**
* 加载模板
* @param string $file - 模板文件名
* @return string 返回编译后模板的系统绝对路径
*/
function MooTemplate($file) {
$tplfile = MOOPHP_ROOT.'/../'.MOOPHP_TEMPLATE_DIR.'/'.$file.'.htm';
$objfile = MOOPHP_ROOT.'/../'.MOOPHP_TEMPLATE_COMPLIE_DIR.'/'.$file.'.tpl.php';
if(@filemtime($tplfile) > @filemtime($objfile)) {
//note 加载模板类文件
$T = MooAutoLoad('MooTemplate');
$T->complie($tplfile, $objfile);
}
return $objfile;
}
/**
* 写文件
* @param string $_file - 需要写入的文件,系统的绝对路径加文件名
* @param string $_content - 学要写入的内容
* @param string $_mod - 写入模式,默认为w
* @param boolean $_exit - 不能写入是否中断程序,默认为中断
* @return boolean 返回是否写入成功
*/
function MooWriteFile($_file, $_content, $_mod = 'w', $_exit = FALSE) {
if(!@$fp = @fopen($_file, $_mod)) {
if($eixt) {
exit('MooPHP File :<br>'.$_file.'<br>Have no access to write!');
} else {
return false;
}
} else {
@flock($fp, 2);
@fwrite($fp, $_content);
@fclose($fp);
return true;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于HTML实现其他类别网站_MooPHP日志分析系统 v1.0_parselog(HTML源码+数据集+项目使用说明).rar (4个子文件)
[其他类别]MooPHP日志分析系统 v1.0_parselog
parselog
MooPHP
libraries
MooFiles.class.php 4KB
MooPHP.php 7KB
MooParseLog.php 4KB
www_logs
wwwlog20080413.log.gz 51KB
共 4 条
- 1
资源评论
CyMylive.
- 粉丝: 7472
- 资源: 4万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功