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

Posted svip7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用PHP str_replace()函数替换符合百度MIP内容标准相关的知识,希望对你有一定的参考价值。

了解过百度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内容标准的主要内容,如果未能解决你的问题,请参考以下文章

php中的字符串常用函数 str_replace 字符串替换

PHP字符串替换str_replace()函数4种用法详解

PHP替换字符串-str_replace

PHP str_replace 函数

PHP str_replace()字符串匹配

strtr和str_replace字符替换函数