这是在百度MIP改造过程中主要会遇到的一个问题,由于百度MIP不允许标签中存在style属性且不支持img标签(需要更改为mip-img),但内容页中的数据往往存在于数据库中,如果强行替换可能会对数据造成损失,况且很多站长采用的方式是PC站和手机站公用数据库,对于MIP不能使用的style属性,在PC站中就可以使用了,所以会造成数据的相互影响。
1)在phpcms/libs/functions/extention.func.php文件中新增一个方法用来过滤style属性和替换img标签:
function content_mip($content)
{
/*正则过滤所有标签中style属性*/
$content = preg_replace('/ style="([^\"]*)"/isU',"",$content);
/*正则替换img标签为mip-img标签*/
$content = preg_replace('/]*src=[\'"]?([^>\'"\s]*)[\'"]?[^>]*>/ie', "''", $content);
}
2)在内容页模板调用文章内容处写下:
{content_mip($content)}
3)最后生成一下内容页,你就会惊奇的发现,文章中所有标签的style属性都消失了,并且img标签也替换成了mip-img标签。