<?php /* Plugin Name: 公共函数库 Version: 1.0 Plugin URL: Description: 计划封装常用的功能,又避免安装多个插件带来的效率低下 Author: HN(QQ:14683667) Author URL: # */ !defined('EMLOG_ROOT') && exit('access deined!'); /** * content2keyword(): 替换正文中出现的TAG标签为超链接,要求:将 <?php echo $log_content; ?>的地方,改为 <?php echo content2keyword($log_content); ?> * 此函数效率相对较低,但暂时没有更好方法实现,主要是避免 将 a、img 标签中的 alt、title 等内容与TAG重复时的处理 * @param unknown_type $content * @return unknown|mixed */ function content2keyword($content){ global $CACHE; $tags = $CACHE->readCache('tags'); if( !is_array($tags) ){ return $content; } //避免在链接、IMG标签内重复添加,先将A标签和 IMG标签匹配并保存起来 preg_match_all('/<([a|img]).*>.*<\/\\1>/Uis', $content, $d); if( is_array( $d[0] ) ){ foreach( $d[0] as $key=>$val ){ $flag = "{======{$key}======}"; $content = str_replace($val, $flag, $content); } } //替换tags链接 foreach( $tags as $val ){ $tagurl = "<a title='{$val['tagname']}' href=\"".Url::tag($val['tagurl'])."\">".$val['tagname'].'</a>'; $content = str_replace( $val['tagname'], $tagurl, $content ); } //将之前保存的A、IMG标签,再替换回原样 if( is_array( $d[0] ) ){ foreach( $d[0] as $key=>$val ){ $flag = "{======{$key}======}"; $content = str_replace($flag, $val, $content); } } return $content; }
站点统计
留言咨询