dt6.0之mip改造-img正则替换mip-img
最近没事,打算把自己的小项目改造为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的更多相关文章
- PHP模板引擎正则替换函数 preg_replace 与 preg_replace_callback 使用总结
在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换). 详情介绍参考博文:P ...
- MIP改造常见问题二十问
在MIP推出后,我们收到了很多站长的疑问和顾虑.我们将所有疑问和顾虑归纳为以下二十个问题,希望对大家理解 MIP 有帮助. 1.MIP 化后对其他搜索引擎抓取收录以及 SEO 的影响如何? 答:在原页 ...
- php中的正则函数主要有三个-正则匹配,正则替换
php中变量的声明? 由于php声明变量的时候, 不支持使用 var关键字, 又不能直接写一个变量名字, 孤零零的放在那里, 所以, 在php中声明变量的方式, 同时也是给变量初始化的形式, 即: & ...
- PHP函数preg_replace() 正则替换所有符合条件的字符串
PHP preg_replace() 正则替换,与JavaScript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素. preg_replace (正则表达式 ...
- PHP preg_replace() 正则替换所有符合条件的字符串示例
PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素. 需要用程序处理的数据并不总是预先以数 ...
- Fiddler AutoResponder正则替换
今天感冒,写简单些. Fiddler AutoResponder正则替换: regex:(?inx).+20150826_1_1_386.mp4/playlist.m3u8.*$ .表示任意字符 *: ...
- 正则替换replace中$1的用法以及常用正则
一.repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. stringObject.replace(regexp/substr,replacement)参数一 ...
- 【python】正则替换
正则替换可以使用函数 例如:替换字符串中所有#1.2.3.4#格式中的数字为0 import re def replace(x): def _replace(matched): m = matched ...
- Python正则替换字符串函数re.sub用法示例(1)
本文实例讲述了Python正则替换字符串函数re.sub用法.分享给大家供大家参考,具体如下: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串然后把它替 ...
随机推荐
- vuex 的基本使用
工程目录 主要关注store 文件夹下的文件 store/index.js import Vue from 'vue' import Vuex from 'vuex' // import getter ...
- ztree取消之前选中状态并设置新的选中
var zTreeObject = $.fn.zTree.getZTreeObj("treeId"); var node = zTreeObject.getNodeByParam( ...
- QT 安装 配置过程
QT, QT creator的安装,环境配置: 需要根据这个连接重新梳理一遍:https://blog.csdn.net/win_turn/article/details/50465127 1)一种方 ...
- ForEach Controller学习
1.ForEach Controller(循环控制器) 作用:ForEach Controlle一般和用户自定义变量(User Defined Variables)一起使用,其在用户自定义变量中读取一 ...
- JavaScript进行UTF-8编码与解码
JavaScript本身可通过charCodeAt方法得到一个字符的Unicode编码,并通过fromCharCode方法将Unicode编码转换成对应字符. 但charCodeAt方法得到的应该是一 ...
- 精确选择识别png图片有像素的区域(使用方法)
/** * * *---------------------------------------* * | ***精确选择识别png图片有像素的区域*** | * *----------------- ...
- quartz2.3.0(七)调度器中断任务执行,手动处理任务中断事件
job任务类 package org.quartz.examples.example7; import java.util.Date; import org.slf4j.Logger; import ...
- robotframework_javaScript定位
整理笔记才发现,只有在rebotframework才用过js定位,那么如果有小伙伴在使用js遇到问题,给我留言吧 通过Id定位 name定位 通过标签名查找 HTML 元素 本例查找 id=&qu ...
- [高清] 深入浅出Spring Boot 2.x.pdf + 代码
------ 郑重声明 --------- 资源来自网络,纯粹共享交流, 如果喜欢,请您务必支持正版!! --------------------------------------------- 下 ...
- android使用http3
http3的github地址: https://github.com/cloudflare/quiche