分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

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

发布时间:2023-09-06 02:30责任编辑:赖小花关键词:PHP

了解过百度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()函数对指定字符串进行替换,示例如下所示:

<?phpecho 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内容标准

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved