猿记录

一个记录、分享的博客

您的位置:主页 > dedecms >

mip文章图片替换为<mip-img>

2018-07-14 18:52:30 作者:yxl 次阅读 dedecms

因为mip规范,style标签不允许出现 在行内标签,所以我们要替换掉,还有图片换成 <mip-img></mip-img>这种格式

打开 include/extend.func.php添加以下方法

function replaceImg($content = null){

     preg_match_all("/style=('|\")([^'\"]+)('|\")/",

     $content,$matches);

     $styles = $matches[0];

     $styles_value = $matches[2];

     $style_custom = "";

     $i = 0;

     foreach($styles_value as $key){

        $style_custom .= ".class".$i."{".$key."}";

        $class_name = 'class="class'.$i.'"';

        $replacements = $class_name;

        $patterns = $styles[$i];

        $content = str_replace($patterns, $replacements, $content);

        $i++;

    }

    $res['style_custom'] = $style_custom;

    $res['content'] = $content;

$pattern="/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.jpeg]|\.png]|\.bmp]))[\'|\"].*?[\/]?>/";

        preg_match_all($pattern, $res['content'],$matches);

        $full_img = $matches[0];

        $full_src = $matches[1];

        foreach ($full_img as $k => $v) {

            $v1 = str_replace("<img", "<mip-img", preg_replace('#<img(.+?)src="([^"]+?)"([^>]*?)>#',"<img$1src='https://www.yxlblog.com$2'$3>",$v));

            $v1 = str_replace("/>", "></mip-img>", $v1);          

            $new_path = $url.$full_src[$k];

            $v1 = str_replace($full_src[$k], $new_path, $v1);

            $res['content'] = str_replace($v, $v1, $res['content']);

        }

        return $res['content'];

}


然后 在文章模板中调用

{dede:field name='body' function='replaceImg(@me)'  /}


凡本站注明“本站”或“投稿”的所有文章,版权均属于本站或投稿人,未经本站授权不得转载、摘编或利用其它方式使用上述作品。

编辑:yxl 关键词:
0

网友评论