免费模板网标签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://puyqzm.com 噶尔县| 银川市| 永济市| 芜湖县| 靖西县| 雅安市| 张家界市| 凭祥市| 吴江市| 巴林右旗| 九江市| 文成县| 图木舒克市| 淅川县| 资中县| 阜康市| 漳州市| 金山区| 四子王旗| 林州市| 鹤峰县| 兴安盟| 苏尼特左旗| 招远市| 余姚市| 同心县| 利辛县| 灵川县| 昭苏县| http://4328sgs.cn 台北市| 宣恩县| 炎陵县| 上高县| 道孚县| 保德县| 时尚| 惠来县| 东宁县| 莱芜市| 龙江县| 卓尼县| 武强县| 仁怀市| 准格尔旗| 天祝| 循化| 隆尧县| 兴业县| 汤阴县| 镇安县| 荣成市| 连云港市| 海宁市| 岳阳市| 牡丹江市| 福清市| 如皋市| 滦平县| 双峰县| 炉霍县| 榆社县| 石狮市| 玉屏| http://11408461.cn 新竹县| 河津市| 安康市| 台东市| 永州市| 浑源县| 资兴市| 景德镇市| 叶城县| 来宾市| 益阳市| 肇东市| 莒南县| 望江县| 澎湖县| 梨树县| 常德市| 同江市| 鄯善县| 华安县| 西乌| 石林| 洪洞县| 墨竹工卡县| 惠安县| 商都县| 扶风县| 达孜县| 建水县| http://www.yijcnv.com 沙田区| 阿拉善左旗| 麻阳| 手机| 公主岭市| 正蓝旗| 扶余县| 磐安县| 饶平县| 武乡县| 武胜县| 绵竹市| 徐闻县| 五峰| 宜兰县| 鄂托克旗| 襄垣县| 临清市| 集安市| 碌曲县| 上饶县| 绥化市| 瑞丽市| 壶关县| 正阳县| 阿拉善左旗| 崇阳县| 漳浦县| 固原市| http://www.0783wco.cn 治多县| 青海省| 常德市| 五华县| 田林县| 资讯| 苗栗县| 习水县| 仁怀市| 疏勒县| 尉氏县| 广安市| 中超| 绥江县| 海盐县| 黑河市| 怀安县| 政和县| 曲靖市| 二连浩特市| 池州市| 潼南县| 垣曲县| 彭山县| 宜兰市| 宁国市| 芦山县| 边坝县| http://pgt9757.tw 神池县| 开封市| 庄浪县| 镇远县| 江都市| 杂多县| 徐汇区| 泾源县| 洞口县| 聊城市| 辽源市| 平和县| 德令哈市| 丹阳市| 深泽县| 诸城市| 永德县|