php 删除字符串中指定标签或标签中的内容

/**
 * 删除指定标签
 *
 * @param array $tags     删除的标签  数组形式
 * @param string $str     html字符串
 * @param bool $content   true保留标签的内容text
 * $html[] = '/(<' . $tag . '.*?>(.|\n)*?<\/' . $tag . '>)/is'; (有点问题 o 标签有时会把内容搞没)
 * @return mixed
 */
function replace_tag($tags, $str, $content = false)
{

    $str = htmlspecialchars_decode($str);
    $html = [];
    if($content){
        foreach ($tags as $tag) {
            
            $html[] = '/(<' . $tag . '.*>[\s\S]*?<\/' . $tag . '>)/';

        }
    }else{
        foreach ($tags as $tag) {
            $html[] = "/(<(?:\/" . $tag . "|" . $tag . ")[^>]*>)/is";
        }
    }
    $data = preg_replace($html, '', $str);
    
    return $data;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值