php能替换html的文本内容,其替换方法是:1、通过“preg_match_all($pattern,htmlspecialchars_decode($a)...);”方法替换;2、通过preg_replace_callback方法替换。

本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。
php能替换html的文本内容吗?
php替换html里面的内容
已知下面一段html
$a="<p>@@##@@@@##@@@@##@@@@##@@@@##@@@@##@@</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p>"
里面有http和https还有本地相对路径的url
普遍用法:
$pattern="/@@##@@/";
preg_match_all($pattern,htmlspecialchars_decode($a),$match);
if(!empty($match[1])){
print_r($match[1]);
}else{
echo "没得";
}先匹配所有在循环$match[1]
系统简介逍遥内容管理系统(CarefreeCMS)是一款功能强大、易于使用的内容管理平台,采用前后端分离架构,支持静态页面生成,适用于个人博客、企业网站、新闻媒体等各类内容发布场景。核心特性1、模板套装系统 - 支持多套模板自由切换,快速定制网站风格2、静态页面生成 - 一键生成纯静态HTML页面,访问速度快,SEO友好3、文章管理 - 支持富文本编辑、草稿保存、文章属性标记、自动提取SEO4、全
1
循环之后foreach($match[1] as $val){preg_replace('#src="'.$val.'"/#is', 'src="aaaaa/',$a);}
这样我觉得挺麻烦的
升级用法:
$host="http://mp.csdn.net"
$newContent = preg_replace_callback("/@@##@@/", function($m) use($host){
if(strpos($m[1],'http://') || strpos($m[1],'https://')){
return $m[0];
}else{
$img=preg_replace('#src="/#is', 'src="'.$host.'/',$m[0]);
return $img;
}
}, $a);这个方法虽然用得少但是批处理的时候看效果超级好哟!
这种闭包函数我个人挺喜欢的。代码阅读性很高
推荐学习:《PHP视频教程》
以上就是php能替换html的文本内容吗的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号