织梦DEDECMS gbk站点mip改造方案(2)

                            $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('/\sstyle\s*\=\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()

    {

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/da877690dea5a0e552e8a56a9ab08d90.html