最近没事,打算把自己的小项目改造为mip,进行测试学习,想把资讯栏目:http://zhimo.yuanzhumuban.cc/news/。全部改造为mip。但是MIP改造一项是:图片标签的改造。而且dt内核跟其他不一样,不像wordpress和织梦一样简单,网上的资料也很少,所以本人就自己写了一个正则替换,希望对大家MIP改造有所帮助。本代码由我自己原创,如有更好的方法,可以一起交流,可以关注我的网站:http://zhimo.yuanzhumuban.cc/

废话不多说,开始!

=======================================================================================================================

首先第一步,找到你修改的模块,我以资讯模块为例:

路径为:/module/article/show.inc.php

然后打开,大概在18行左右 插入一下代码,进行正则替换

function mip_replace($content = ''){
$pattern1 = "#<img.*?src=['\"](.*?)['\"].*?>#ims";
$imgcontent=array();
preg_match_all($pattern1,$content,$img);
$imgcontent = $img[0];
$imgurl = $img[1];
foreach($imgcontent as $imgk=>$imgv)
{
$temp = str_replace('<img','mip-img',$imgv);
$temp = str_replace('/>','></mip-img',$temp);
$url = $imgurl[$imgk];
$url = mip_format_img_url($url); $temp = preg_replace("/src=['\"].*?['\"]/si","src=\"$url\"",$temp);
$mipimg[$imgk] = $temp;
} $content = preg_replace($imgcontent,$mipimg,$content);
$content =preg_replace("/<a /si","<a target=\"_blank\" ",$content);
$content =preg_replace("/style=\".*?\"/si","",$content); return mip_utf8($content); } function mip_format_img_url( $url = ''){
if(stripos($url, 'http') === 0 || stripos($url, 'ftp') === 0 ){
return $url;
}
if(stripos($url, '/') === 0){
$url = 'http://'.$_SERVER['HTTP_HOST'].$url;
}else{
$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.$url;
}
return $url;
} function mip_utf8($string = '') { $fileType = mb_detect_encoding($string , array('UTF-8','GBK','LATIN1','BIG5'));
if( $fileType != 'UTF-8'){
$string = mb_convert_encoding($string ,'utf-8' , $fileType);
}
return $string;
} $content=mip_replace($content);

这样就好了,以上就是个人的写法,如有其他好方法可以分享交流!

dt6.0之mip改造-img正则替换mip-img的更多相关文章

  1. PHP模板引擎正则替换函数 preg_replace 与 preg_replace_callback 使用总结

    在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换). 详情介绍参考博文:P ...

  2. MIP改造常见问题二十问

    在MIP推出后,我们收到了很多站长的疑问和顾虑.我们将所有疑问和顾虑归纳为以下二十个问题,希望对大家理解 MIP 有帮助. 1.MIP 化后对其他搜索引擎抓取收录以及 SEO 的影响如何? 答:在原页 ...

  3. php中的正则函数主要有三个-正则匹配,正则替换

    php中变量的声明? 由于php声明变量的时候, 不支持使用 var关键字, 又不能直接写一个变量名字, 孤零零的放在那里, 所以, 在php中声明变量的方式, 同时也是给变量初始化的形式, 即: & ...

  4. PHP函数preg_replace() 正则替换所有符合条件的字符串

    PHP preg_replace() 正则替换,与JavaScript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素. preg_replace (正则表达式 ...

  5. PHP preg_replace() 正则替换所有符合条件的字符串示例

    PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素.  需要用程序处理的数据并不总是预先以数 ...

  6. Fiddler AutoResponder正则替换

    今天感冒,写简单些. Fiddler AutoResponder正则替换: regex:(?inx).+20150826_1_1_386.mp4/playlist.m3u8.*$ .表示任意字符 *: ...

  7. 正则替换replace中$1的用法以及常用正则

    一.repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. stringObject.replace(regexp/substr,replacement)参数一 ...

  8. 【python】正则替换

    正则替换可以使用函数 例如:替换字符串中所有#1.2.3.4#格式中的数字为0 import re def replace(x): def _replace(matched): m = matched ...

  9. Python正则替换字符串函数re.sub用法示例(1)

    本文实例讲述了Python正则替换字符串函数re.sub用法.分享给大家供大家参考,具体如下: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串然后把它替 ...

随机推荐

  1. 获取apk的Activity和Package

    2.查看包名和activity adb logcat|grep -i activitymanager 获取当前界面的activity 1.adb shell dumpsys window window ...

  2. vxlan 跨网段虚拟机迁移

    一些服务器虚拟化软件可实现在两台虚拟化的物理服务器之间对虚拟机做动态迁移,迁移至另一中心的虚拟机不仅保留原有IP地址,而且还保持迁移前的运行状态(如TCP会话状态),所以必须将涉及虚拟机,迁移的物理服 ...

  3. PAT(B) 1055 集体照(Java)

    题目链接:1055 集体照 (25 point(s)) 题目描述 拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 N/K(向下取整),多出来的人全部站在最后一 ...

  4. 关于django操作orm的一些事--反向生成orm、连接多个数据库

    1. django反向生成orm的类代码 使用命令python manage.py inspectdb > app01/models.py,注意,我这里的app01是app的名字. 2.djan ...

  5. 3. 键值对RDD

    键值对RDD是Spark中许多操作所需要的常见数据类型.除了在基础RDD类中定义的操作之外,Spark为包含键值对类型的RDD提供了一些专有的操作在PairRDDFunctions专门进行了定义.这些 ...

  6. tkinter学习笔记_01

    知识点目录: 1. 文本框 Label var = tk.StringVar() # 文本框 bg 背景颜色 fonnt 字体设置 width 长 height 高 l = tk.Label(root ...

  7. Spring Boot 五种热部署方式

    [推荐]2019 Java 开发者跳槽指南.pdf(吐血整理)>>> 1.模板热部署 在SpringBoot中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不 ...

  8. js加减乘除函数

    经常用到算数的时候,可以直接用:// 除法函数function accDiv(arg1, arg2) { var t1 = 0, t2 = 0, r1, r2; try { t1 = arg1.toS ...

  9. kubernetes第一章--介绍

  10. it commit提示Your branch is up-to-date with 'origin/master'.

    今天提交git仓库的时候,遇到了如截图所示的问题,提示Your branch is up-to-date with 'origin/master'. 查了些资料后,发现其根本原因是版本分支的问题 这时 ...