emlog MVC解构--基础函数库function.base.php

  • 内容
  • 评论
  • 相关

emlog的基础函数库有很多有用的功能函数,不仅在emlog框架能用,在其他地方也是很实用的哦~

函数 注释
function __autoload($class) 魔术方法,自动加载类,$class是类名,emlog类文件名为小写的类名.php,函数会自动将类名转换为小写

function doStripslashes()

function stripslashesDeep($value)

去除多余的转义字符,前一个函数判断php是否开启magic_quotes_gpc,开启则调用后面一个函数将$_GET,$_POST,$_COOKIE,$_REQUEST数组里面的转义字符去除,后一个函数将递归数组每一层去除转义字符,参数$value可以为数组或变量
function htmlClean($content,$nl2br=true) 转换HTML代码函数,$content为内容字符串,函数首先将html预定义字符转换为HTML实体,并用UTF-8编码,$nl2br默认为true,则调用nl2br函数将字符串里面的换行转换成<br>,同时将相连的两个空格转换成'&nbsp;&nbsp;',制表符'\t'转换成'&nbsp;&nbsp;&nbsp;&nbsp;',返回转换成功的字符串
function getIp() 获取返回用户IP
funtion getBlogUrl() 获取返回站点地址,仅限根目录脚本使用,目前仅用于首页ajax请求
function isIEOr7() 判断浏览器是不是IE6或IE7,是返回true,否则返回false
function checkPlugin($plugin) 检查插件是否安装,$plugin为插件根目录名和插件入口文件名除去后缀一致
function emLoadJQuery() 加载JQuery,采用一个静态变量保存加载状态,防止重复加载,同时利用全局变量$emHooks['index_head']钩子,将一个输出引用JQuery内容的函数挂载到钩子上,可学习函数使用钩子的方法
function checkMail($email)
验证email地址格式,注意emlog的email长度不能超过60个字符
function subString($strings,$start,$length) 若PHP存在mb_substr和mb_strlen函数,即PHP版本高于4.0.6,采用安全可靠的mb_substr来截取字符串,在截取特殊字符例如中文时不会出现乱码,编码设置为'utf8',$strings为字符串,$start为开始位置,$length为截取长度,原字符串的长度大于截取长度时,在截取字符串后面添加'...',否则直接输出截取的字符串。若PHP不存在mb_substr时,只能用传统简单的substr截取字符串,为了防止最后一个字符出现截断现象,可能要多截取1到2个字符,输出是一致的。
function extractHtmlData($data,$len) 从可能包含html标记的内容中获取纯文本摘要,$data是完整数据,$len是长度,将去除html、xml的标签,去除空白字符,替换还原HTML实体,返回处理后的摘要字符串
function changeFileSize($fileSize) 转换附件大小单位,参数$fileSize为以字节为单位的文件大小,仅包含数字,返回值包含单位,保留两位小数,>=230字节大小的返回GB为单位的大小,>=220且<230字节大小的返回MB为单位的大小,>=210且<220字节大小的返回KB为单位的大小,<210字节大小的返回以字节为单位的大小,注意后面接单位,因此返回的是字符串
function getFileSuffix($fileName) 获取返回文件名后缀
function pagination($count,$perlogs,$page,$url,$anchor='') 分页函数,获取返回输出列表页底部页码导航的字符串;参数$count为条目总数,$perlogs为每页显示的条目数,$page为当前页码,$url为页码的地址,$achor为需访问的页面的锚字符串,默认为空,返回包含输出首页尾页前5页和后5页的字符串。
function addAction($hook,$actionFunc)
在插件中调用,挂载插件函数到预留的钩子上。参数$hook是钩子名称,$actionFunc是插件函数名,函数将处理全局数组$emHooks,数组结构为钩子名=>array(),指向的数组为挂载到钩子上的插件函数名组成的数组
function doAction($hook) 执行挂在钩子上的函数,支持多参数,参数$hook为钩子名,后面还可以跟多个参数,这些参数将利用func_get_args()获得,将同时传递给每个钩子上挂载的函数,用call_user_func_array()调用
function breakLog($content,$lid)

分割文章,参数$content为文章内容,$lid为文章ID

如果有分割标志,则将分割标志前面部分且添加阅读全文链接后返回

没有分割标志,则如果允许摘要,则获取摘要且添加阅读全文的链接后返回

没有分割标志且不允许摘要,则直接返回文章全文

function rmBreak($content) 删除分割标志,参数$content为文章内容,返回删除标志后的文章内容
function smartDate($datetemp,$dstr='Y-m-d H:i')

时间转化函数,根据时间戳和现在相距的时间长度返回不同的说明,参数$datetemp为时间戳,$dstr为gmdate()函数的时间格式字符串。转化的格式分为:

xx秒前,xx分钟前,约xx小时前,相隔超过一天则返回日期字符串默认为年-月-日 时:分

function getRandStr($length=12,$special_chars=true) 生成一个随机的字符串,参数$length为生成的字符串长度,默认为12,$special_chars是否包含特殊字符如'!@#$%^&*()',不包含则仅为大小写字母和数字,返回生成的随机字符串
function findArray($array1,$array2) 寻找两数组不同元素,返回不同元素组成的数组
function uploadFile($fileName,$errorNum,$tmpFile,$fileSize,$type,$isIcon=false,$is_thumbnail=true) 调用upload函数上传文件并在出错时输出错误信息,参数说明见upload函数
function uploadFileBySwf($fileName,$errorNum,$tmpFile,$fileSize,$type,$isIcon=false,$is_thumbnail=true) 调用upload函数上传文件,用于附件批量上传,出错时直接跳转输出404错误,参数说明见upload函数
function upload($fileName,$errorNum,$tmpFile,$fileSize,$type,$isIcon=false,$is_thumbnail=true)

文件上传函数:

 * 返回的数组索引

 * mime_type 文件类型

 * size      文件大小(单位KB)

 * file_path 文件路径

 * width     宽度

 * height    高度

 * 可选值(仅在上传文件是图片且系统开启缩略图时起作用)

 * thum_file   缩略图的路径

 * thum_width  缩略图宽度

 * thum_height 缩略图高度

 * thum_size   缩略图大小(单位KB)

 *

 * @param string $fileName 文件名

 * @param string $errorNum 错误码:$_FILES['error']

 * @param string $tmpFile 上传后的临时文件

 * @param string $fileSize 文件大小 KB

 * @param array $type 允许上传的文件类型

 * @param boolean $isIcon 是否为上传头像

 * @param boolean $is_thumbnail 是否生成缩略图

 * @return array 文件数据 索引

 *

 */


function resizeImage($img,$thum_path,$max_w,$max_h) 图片生成缩略图,参数$img为预缩略的图片,$thum_path为生成缩略图的路径,$max_w:缩略图最大宽度px,$max_h:缩略图最大高度px,调用imageCropAndResize函数生成保存缩略图,并返回true/false
function imageCropAndResize($src_image,$dst_path,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h)

裁剪、缩放图片,利用imagepng()或imagejpeg()或imagegif()函数保存缩略图片到指定文件后返回true,失败返回false

 * @param string $src_image 原始图

 * @param string $dst_path 裁剪后的图片保存路径

 * @param int $dst_x 新图坐标x

 * @param int $dst_y 新图坐标y

 * @param int $src_x 原图坐标x

 * @param int $src_y 原图坐标y

 * @param int $dst_w 新图宽度

 * @param int $dst_h 新图高度

 * @param int $src_w 原图宽度

 * @param int $src_h 原图高度


function chImageSize($img,$max_w,$max_h)

按比例计算图片缩放尺寸

 * @param string $img 图片路径

 * @param int $max_w 最大缩放宽

 * @param int $max_h 最大缩放高

返回保存原始尺寸和缩放后尺寸的索引数组

'w'=>缩放后宽,'h'=>缩放后高

'rc_w'=>原始图宽,'rc_h'=>原始图高

function getGravatar($email,$s=40,$d='mm',$g='g') 根据邮箱获取Gravatar头像,参数$email是邮箱地址,$s是头像尺寸为正方形因此长宽一致,$d设置默认头像,默认'mm'为所谓的黑色神秘人物,$r为头像评级,'g'为仅普通头像能显示
function getTimeZoneOffset($remote_tz,$origin_tz='UTC') 计算时区的时差,参数$remote_tz是远程时区,$origin_tz为标准时区,返回时差单位是秒
function emStrtotime($timeStr) 将字符串转换成UNIX时间戳,返回时间戳
function getMonthDayNum($month,$year) 获取指定月份的天数,参数$month为月份,$year为年份,返回天数
function emUnZip($zipfile,$path,$type='tpl')

解压zip文件

 * @param string $zipfile 要解压的文件

 * @param string $path 解压到该目录

 * @param string $type 压缩文件的类型

'tpl':模板包,'plugin':插件包

'backup':备份包,'update':更新包

解压成功返回1,其他返回错误码

function emZip($orig_fname,$content) zip压缩文件和内容,参数$orig_fname为文件名,$content为要追加到文件后面的内容,将内容追加到文件后zip压缩并使用file_get_contents获取压缩后的文件全部内容返回,失败返回false
function emFecthFile($source) 获取远程文件,参数$source为远程文件地址,将远程文件的内容存放到临时文件,将返回临时文件的地址
function emDeleteFile($file) 删除文件或目录,参数$file为文件地址,如果文件为普通文件则直接删除,如果文件为文件夹则递归删除,失败则返回false,成功返回true
function emDirect($directUrl) 页面跳转,参数$directUrl为跳转页面网址
function emMsg($msg,$url='javascript:history.back(-1);',$isAutoGo=false) 显示特殊的系统信息,参数$msg为信息内容字符串,$url为返回地址,默认为上一页,$isAutoGo为是否自动跳转,默认为false不自动跳转
function show_404_page() 显示404错误页面,如果前台模板有404.php,则输出404.php,否则使用emMsg输出简单的404错误信息
function emoFormat($t)

替换表情,参数$t为包含文本表情的文本内容,替换的图片在 BLOG_URL.'admin/editor/plugins/emoticons/images/' 目录下

'[耶]'=>'0.gif', '[呵呵]'=>'1.gif', '[悲伤]'=>'2.gif', '[抓狂]'=>'3.gif', '[衰]'=>'4.gif', '[花心]'=>'5.gif', '[哼]'=>'6.gif', '[泪]'=>'7.gif', '[害羞]'=>'8.gif', '[酷]'=>'9.gif', '[晕]'=>'10.gif', '[挤眼]'=>'11.gif', '[鬼脸]'=>'12.gif', '[汗]'=>'13.gif', '[吃惊]'=>'14.gif', '[发呆]'=>'15.gif', '[闭嘴]'=>'16.gif', '[撇嘴]'=>'17.gif', '[疑问]'=>'18.gif', '[睡觉]'=>'19.gif', '[NO]'=>'20.gif', '[大哭]'=>'21.gif', '[爱你]'=>'22.gif', '[嘻嘻]'=>'23.gif', '[生病]'=>'24.gif', '[偷笑]'=>'25.gif', '[思考]'=>'26.gif', '[玫瑰]'=>'27.gif', '[心]'=>'28.gif', '[伤心]'=>'29.gif', '[咖啡]'=>'30.gif', '[音乐]'=>'31.gif', '[下雨]'=>'32.gif', '[晴天]'=>'33.gif', '[星星]'=>'34.gif', '[月亮]'=>'35.gif'


function hash_hmac($algo,$data,$key)

若PHP不存在hash_hmac方法(PHP>5.1.2),则自定义

使用HMAC方法生成带有密钥的哈希值

$algo:要使用的哈希算法名称,自定义方法只能使用"md5"和"sha1"。

$data:要进行哈希运算的消息。

$key:使用HMAC生成信息摘要时所使用的密钥。

function get_mimetype($extension)

根据文件后缀获取MIME类型,参数$extension为后缀名,若在列表里则返回列表对应的值,否则默认返回'text/html'

列表:

$ct['htm'] = 'text/html';

$ct['html'] = 'text/html';

$ct['txt'] = 'text/plain';

$ct['asc'] = 'text/plain';

$ct['bmp'] = 'image/bmp';

$ct['gif'] = 'image/gif';

$ct['jpeg'] = 'image/jpeg';

$ct['jpg'] = 'image/jpeg';

$ct['jpe'] = 'image/jpeg';

$ct['png'] = 'image/png';

$ct['ico'] = 'image/vnd.microsoft.icon';

$ct['mpeg'] = 'video/mpeg';

$ct['mpg'] = 'video/mpeg';

$ct['mpe'] = 'video/mpeg';

$ct['qt'] = 'video/quicktime';

$ct['mov'] = 'video/quicktime';

$ct['avi'] = 'video/x-msvideo';

$ct['wmv'] = 'video/x-ms-wmv';

$ct['mp2'] = 'audio/mpeg';

$ct['mp3'] = 'audio/mpeg';

$ct['rm'] = 'audio/x-pn-realaudio';

$ct['ram'] = 'audio/x-pn-realaudio';

$ct['rpm'] = 'audio/x-pn-realaudio-plugin';

$ct['ra'] = 'audio/x-realaudio';

$ct['wav'] = 'audio/x-wav';

$ct['css'] = 'text/css';

$ct['zip'] = 'application/zip';

$ct['pdf'] = 'application/pdf';

$ct['doc'] = 'application/msword';

$ct['bin'] = 'application/octet-stream';

$ct['exe'] = 'application/octet-stream';

$ct['class'] = 'application/octet-stream';

$ct['dll'] = 'application/octet-stream';

$ct['xls'] = 'application/vnd.ms-excel';

$ct['ppt'] = 'application/vnd.ms-powerpoint';

$ct['wbxml'] = 'application/vnd.wap.wbxml';

$ct['wmlc'] = 'application/vnd.wap.wmlc';

$ct['wmlsc'] = 'application/vnd.wap.wmlscriptc';

$ct['dvi'] = 'application/x-dvi';

$ct['spl'] = 'application/x-futuresplash';

$ct['gtar'] = 'application/x-gtar';

$ct['gzip'] = 'application/x-gzip';

$ct['js'] = 'application/x-javascript';

$ct['swf'] = 'application/x-shockwave-flash';

$ct['tar'] = 'application/x-tar';

$ct['xhtml'] = 'application/xhtml+xml';

$ct['au'] = 'audio/basic';

$ct['snd'] = 'audio/basic';

$ct['midi'] = 'audio/midi';

$ct['mid'] = 'audio/midi';

$ct['m3u'] = 'audio/x-mpegurl';

$ct['tiff'] = 'image/tiff';

$ct['tif'] = 'image/tiff';

$ct['rtf'] = 'text/rtf';

$ct['wml'] = 'text/vnd.wap.wml';

$ct['wmls'] = 'text/vnd.wap.wmlscript';

$ct['xsl'] = 'text/xml';

$ct['xml'] = 'text/xml'; 


发表评论

电子邮件地址不会被公开。 必填项已用*标注

00:00 / 00:00
顺序播放