诉求
日常修改页面需求,需要将一个页面里的相同标签进行匹配删除(并没有被批量分离) 删除页面里面的所有 标签
被转换代码示例
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