免费模板网标签tags 更多...
                您的位置:首页 > PHP学习 > phpcms实现手机版mip不显示style属性

                phpcms实现手机版mip不显示style属性

                时间:2018-03-15 来源:网上收集 作者:Tony 阅读次数 tagsphpcmsmip

                分享到:

                小编最近对网站手机版进行mip改造,根据mip的要求,不允许有内连的style,那么之前的直接输出文章内容肯定是不符合要求的,还有一个img标签也不支持,要改造成mip-img,知道原理了也简单,就是字符串的过滤,这个要求对正则表达式熟悉,现在就体现到开源系统的好处了,用的人多。网上肯定有答案,不过就是花时间去找,去核对。小编已经为大家整理好了

                找到文件/phpcms/modules/wap/functions/global.func.php 

                然后加入字符串过滤,小编提供2种方式

                方式一

                <?php  
                /** 
                 * 百度mip内容标准替换方法 
                 * 
                 * @author yunbinbai@foxmail.com for http://www.soyiyuan.com/city/ 
                 * @createtime 2017-1-11 
                 * @modifytime 
                 * @param string $content 待转换的内容正文 
                 * @return string 
                 */  
                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;  
                            }  
                ?>

                方式2

                /**
                * mip内容图片替换
                */
                function content_mip($content) {
                
                   $content = preg_replace('/<img[^>]*src=[\'"]?([^>\'"\s]*)[\'"]?[^>]*>/ie', "'<mip-img data-carousel=\"carousel\"  class=\"mip-element mip-img\"  src=\"$1\"></mip-img>'", $content);
                
                   //匹配替换过的图片
                   $content = preg_replace("/style=.+?['|\"]/i",'',$content);
                
                   return $content;
                }

                小编偏向方式2,小编发现不是站内的图片 方式一不能替换img标签,方式2可以,虽然方式1感觉代码写的更6,各位代码大神可以在原基础上扩展完善。

                然后页面输出

                {mip_replace($rs['content'])}

                就可以看到标准的mip格式啦,是不是棒棒哒。附上检测网址https://www.mipengine.org/validator/validate

                本文地址:http://www.crdlvtt.tw/php/h2987.html

                猜你喜欢
                栏目推荐
                模板推荐

                Copyright:2014-2019 www.freemoban.com Corporation,All Rights Reserved 免费模板网 版权所有 鄂ICP备19005084号

                免责声明:本站部分资源来自互联网收集,版权归原创者所有,如果侵犯了你的权益,请通知我们,我们会及时删除侵权内容,谢谢合作!

                建站咨询QQ
                十二生肖66期一字解码开什么 苗栗市| 灵山县| 江山市| 西丰县| 乌兰察布市| 卓资县| 彩票| 垫江县| 孟津县| 洛川县| 郧西县| 井陉县| 香格里拉县| 辽源市| 江口县| 鄂尔多斯市| 桃江县| 焉耆| 濉溪县| 蒙自县| 阳原县| 常山县| 临海市| 屯门区| 宽甸| 靖边县| http://www.mvlbmtj.tw 通山县| 山东省| 莱芜市| 精河县| 万盛区| 吉水县| 调兵山市| 达日县| 蓬溪县| 长乐市| 眉山市| 兴隆县| 新郑市| 来宾市| 林西县| 福州市| 阿坝县| 洛南县| 清苑县| 盐山县| 梅河口市| 诏安县| 兴国县| 茶陵县| 宣恩县| 高唐县| 铁岭市| 门源| 农安县| http://fgapiuc.tw 阳东县| 乃东县| 舒兰市| 德令哈市| 湖州市| 林西县| 许昌县| 道真| 宁德市| 华蓥市| 沧州市| 岳阳市| 格尔木市| 新河县| 福清市| 邵阳县| 洛隆县| 蒲城县| 大荔县| 河北省| 托克逊县| 隆德县| 三穗县| 南华县| 勐海县| 攀枝花市| 安阳市| 武川县| 伊宁县| 沅江市| 瑞金市| 盐山县| 清新县| 鄂托克旗| http://guq209.cn 万安县| 秀山| 辽阳市| 都江堰市| 南投市| 绥芬河市| 东兴市| 平山县| 嘉荫县| 奉新县| 枣阳市| 鹤山市| 保康县| 肇庆市| 西峡县| 平舆县| 金山区| 宁城县| 景宁| 博白县| 漯河市| 通辽市| 明星| 东阳市| 金秀| 沂南县| 阿瓦提县| 祁东县| 元氏县| http://rwg019.cn 新巴尔虎右旗| 永仁县| 安国市| 宜兴市| 武宣县| 剑川县| 海兴县| 新民市| 天台县| 明光市| 保康县| 益阳市| 桑植县| 邵东县| 绥芬河市| 石家庄市| 芜湖县| 邯郸市| 祥云县| 汉川市| 沅江市| 桃园县| 宣汉县| 苏尼特左旗| 黔南| 阜宁县| 定边县| 依安县| 延川县| http://ukg815.com 贵定县| 吴桥县| 武义县| 陆川县| 盐源县| 库尔勒市| 建德市| 长春市| 瑞金市| 高州市| 合川市| 小金县| 琼海市| 蓝山县| 宜都市| 大余县| 崇明县| 健康| 醴陵市| 苏州市| 玛沁县| 池州市| 沙湾县| 东源县| 邯郸县| 云梦县| 交口县| 湘潭县| http://cxzsel.com.cn 波密县| 天津市| 凌源市| 资兴市| 洛川县| 交口县| 大丰市| 定远县| 明溪县| 扶沟县| 仁化县| 桂平市| 玉山县| 平陆县| 越西县| 永昌县| 剑河县|