加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

【MIP技术分享】dedecms/gbk站点mip改造方案

发布时间:2016-11-10 22:00:07 所属栏目:经验 来源:洪石陈的网站
导读:副标题#e# 前言: 近期尝试对一个做过跳转适配的dedecms/gbk手机站进行整站mip改造,经过一系列思路完善和测试,终于完成,回顾下过程,主要问题可分为以下几类: 1、非utf-8站点的编码问题 前些时候宋同学在站长社区发布了新装utf-8版cms和转换数据库编码

$html=str_replace('<metacharset="gb2312">','<metacharset="utf-8">',iconv('gbk','utf-8//ignore',$html));//转换为utf-8编码声明,fwrite会以此生成对应编码的静态页面

$html=str_replace('<a','<a target="_blank" ',$html);//<a>标签加target

$html=str_replace('<img','<mip-img ',$html);//替换<img>标签

/*主要针对编辑器生成的内联样式,将内联样式转换到head的style标签中*/

if(preg_match_all('/sstyles*=s*['"](.*?)['"]/',$html,$css)){

$css0=array_unique($css[0]);//过滤重复style

foreach($css0as $k => $v){

$html=str_replace($v,'class="mip_add_css_'.$k.'"',$html);//mip_add_css_为自定义样式名前缀,可自行修改,但需避免与原有样式名重复

$temp_name='mip_add_css_'.$k;

$$temp_name=$css[1][$k];

$add_css.='.'.$temp_name.'{'.$css[1][$k]."}n";

}

$html=str_replace('<stylemip-custom>',"<style mip-custom>n".$add_css,$html);

}

fwrite($fp, $html);

}else{//pc端执行

fwrite($fp,$this->GetResult());

}

fclose($fp);

}

注:该方案初步测试成功,因生成静态文件时处理程序增加,理论上来说会对生成效率有所影响。另外,不排除存在问题的可能性,如有问题或其他想法可在百度站长社区回帖共同研究探讨。

· 默认动态移动站:

1、修改/m目录下index.php、list.php、view.php三个php文件的编码,改为utf-8。

2、找到/include/dedetag.class.php文件中解析模板直接输出的函数:

function Display()

{

echo $this->GetResult();

}

替换为:

function Display()

{

$html=str_replace('<meta charset="gb2312">','<meta charset="utf-8">',$this->GetResult());//转换为utf-8编码声明,此处源内容$this->GetResult()不需要转编码

echo $html;

}

如此即可以utf-8编码输出动态页面,其他处理可参照上面静态生成站点方案中的代码。

注:相关网站建设技巧阅读请移步到建站教程频道。

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读