袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

emlogTAG标签转内链插件

浏览量:732

此版本支持功能:

content2keyword() 函数,将正文中出现的 TAG 替换成站内超链接。


使用方法:

1、将以下代码保存为 publicfun.php,放到publicfun文件夹,再打包成ZIP格式,在EMLOG后台上传插件并启用;

2、打开 templates/模板名/echo_log.php,找到类似<?php echo $log_content;?>的地方,改为<?php echo content2keyword($log_content);?>


<?php
/*
Plugin Name: TAG标签转内链
Version: 1.0
Plugin URL:
Description: emlogTAG标签转内链插件
Author: HN
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;
}


打赏