织梦DEDECMS文章内容图片img转mip-img

织梦DEDECMS文章内容图片img转mip-img的方法

方法一

此方法功能就是单一把IMG转成mip-img。

打开/include/extend.func.php,在最下面添加如下代码 :

function mipBody($body)
{
$body = str_replace(' style="white-space:pre"', '', $body);
preg_match_all('/<img (.*?)\>/', $body, $images);
if (!is_null($images)) {
foreach ($images[1] as $index => $value) {
$mip_img = str_replace('<img', '<mip-img', $images[0][$index]);
$mip_img = str_replace('>', '></mip-img>', $mip_img);
$mip_img = preg_replace('/(width|height)="\d*"\s/', '', $mip_img);
$mip_img = preg_replace('/ style=\".*?\"/', '', $mip_img);
$mip_img = preg_replace('/ class=\".*?\"/', '', $mip_img);
$body = $content = str_replace($images[0][$index], $mip_img, $body);
}
}
return $body;
}

内容调用:

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

效果如下:

方法二

此方法可以实现以下功能

1、把<img 替换成 <mip-img
2、width|height 去除图片宽高
3、style 去除内联样式
4、/uploads/ 相对路径图片路径替换成绝对路径

/**
 *  MIP文章内容页图片适配百度MIP规范
 *
 * @access    public
 * @param     string  $content  	文章内容
 * @return    string
 */
function mip($content){
	global $cfg_basehost;
    preg_match_all('/<img (.*?)\>/', $content, $images);
    if(!is_null($images)) {
        foreach($images[1] as $index => $value){
            $mip_img = str_replace('<img', '<mip-img', $images[0][$index]);
            $mip_img = str_replace('>', '></mip-img>', $mip_img);
            $mip_img = preg_replace('/(width|height)="\d*"\s/', '', $mip_img );
            $mip_img = preg_replace('/ style=\".*?\"/', '',$mip_img);
            $content = str_replace($images[0][$index], $mip_img, $content);
        }
    }
    preg_match_all('/ style=\".*?\"/', $content, $style);
    if(!is_null($style)) {
        foreach($style[0] as $index => $value){
            $mip_style = preg_replace('/ style=\".*?\"/', '',$style[0][$index]);
            $content = str_replace($style[0][$index], $mip_style, $content);
        }
    }
	$content = str_replace('/uploads/', $cfg_basehost.'/uploads/', $content);
    return $content;  
}

内容页调用:

{dede:field.body function=mip(@me)/}

 

 

THE END