码迷,mamicode.com
首页 > Web开发 > 详细

利用PHP str_replace()函数替换符合百度MIP内容标准

时间:2019-01-20 12:05:49      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:replace   blank   就是   targe   直接   php   ble   ==   utf8   

了解过百度MIP的同学都知道(什么?你不知道什么是百度MIP?就是移动网页加速器鸭??)某一些标签是禁止使用的!而我们使用的phpcms程序页面内容往往就包含了这些标签,比如img style等等……最后导致我们MIP效验不通过。

既然知道了问题所在,那么问题就简单多了。把禁用标签替换成符合MIP的标准不就可以了吗

那么怎么替换呢?下面我们简单了解一下str_replace()函数

通过字串符str_replace()函数替换可以实现对指定字符串中的指定字符进行替换。

其语法格式如下的形式:

str_replace(find,replace,string,count)

其参数说明如下:

参 数 说 明
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。对替换数进行计数的变量。

注释:该函数区分大小写。请使用 str_ireplace() 函数执行不区分大小写的搜索。

注释:该函数是二进制安全的。

使用str_replace()函数对指定字符串进行替换,示例如下所示:

<?php
echo str_replace("world","Shanghai","Hello world!");
?>

好了,相信你也对str_replace()函数有了大概了解,当然了 php字符串替换还有几个函数

strtr()

substr_replace()

preg_replace()

在这里我就不一一例举了,明白就行。下面就直接进入主题吧!

function mip_replace($content = ‘‘){  
    $pattern = "#<img.*?src=[‘\"](.*?)[‘\"].*?>#ims";  
        $imgcontent=array();  
        preg_match_all($pattern,$content,$img);  
        $imgcontent = $img[0];  
        $imgurl = $img[1];  
        foreach($imgcontent as $key=>$image)  
        {  
          $temp =  str_replace(‘<img‘,‘mip-img‘,$image);  
          $temp = str_replace(‘/>‘,‘></mip-img‘,$temp);  
          $url = $imgurl[$key];  
          $url = mip_format_img_url($url);  
  
          $temp = preg_replace("/src=[‘\"].*?[‘\"]/si","src=\"$url\"",$temp);  
          $mipimg[$key] = $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;  
            }  

食用方法:上面代码直接放到公共全局文件。最后通过调用 mip_replace($content) ,其中变量$content为你要替换字符的主体内容

利用PHP str_replace()函数替换符合百度MIP内容标准

标签:replace   blank   就是   targe   直接   php   ble   ==   utf8   

原文地址:https://www.cnblogs.com/svip7/p/phpzifuchuantihuan.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!