通过php实现html标签删除(正则表达式)

文章讲述了使用PHP通过正则表达式删除HTML标签的需求,遇到的问题包括不会覆盖原文件、str_replace不支持正则查询等,给出了相应的解决方案。
摘要由CSDN通过智能技术生成

通过php实现html标签删除(正则表达式)

诉求

日常修改页面需求,需要将一个页面里的相同标签进行匹配删除(并没有被批量分离) 删除页面里面的所有 标签

被转换代码示例

在这里插入图片描述

php代码示例

$file = "./inin.html";


if(!file_exists($file))
{
    var_dump("文件不存在");
}

// 以數組形式讀取文件
// $file_text = file($file);
$file_text = file_get_contents($file);
// 正則表達式 查找a標籤
$reg_star = '/<a.*?>/';
$reg_end ='/<\/a?>/';

//返回匹配到的个数
preg_match_all($reg_star,$file_text,$pat_array,PREG_SET_ORDER);

foreach($pat_array as $item)
{
    preg_match_all($reg_end,$file_text,$end_array,PREG_SET_ORDER);

}

$i = 0;

// $put = implode(",",$pat_array);

$new = str_replace($pat_array[0],"1",$file_text);
$new = str_replace($end_array[0],"1",$new);


// 数据输出(跟源文件同名 会替换源文件)
file_put_contents('inin.html',$new);

运行结果

在这里插入图片描述

替换的结果 并不会覆盖到原来的网页,而是相当于复制了一份新的 在新的基础上进行修改。所以在运行时 需要接受str_replace()函数返回的数据

str_replace 不支持正则表达式查询,查询到的正则串是一个整体,也就是说 $pat_array这个数组里面 只有一组数据 他的所有值 相当于存储在【0】处 所以在替换的时候必须要标注下标.不然没有效果c:\Users\PC2023~1\AppData\Local\Temp\SGPicFaceTpBq\6916\0BD2F29E.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值