Li Yuan Bo
啥都会点……-李元波
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>,同时将相连的两个空格转换成' ',制表符'\t'转换成' ',返回转换成功的字符串 |
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) | 字节大小的返回以字节为单位的大小,注意后面接单位,因此返回的是字符串 |
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'; |
标签:emlog
发表评论: