[英]php preg_replace between two needles
我知道之前已经问过并回答了这类问题,但我无法在模式匹配中找出错误。
由于一些非常棘手的遗留数据库输入我试图删除两个html特殊字符之间的任何东西,然后将继续处理后遗骸。 原始代码在1<b>2
之后变为1<b>2
以加粗任何东西,但最终为1<b>2
我希望留下1<>2
或1 2
我甚至关闭?
thx艺术
$str = '1<b>2';
$output = preg_replace('/&#?[a-z0-9]{2,8};(.*?)\/&#?[a-z0-9]{2,8};/is', '',$str);
看起来你应该删除中间的斜线
/&#?[a-z0-9]{2,8};[^&]+&#?[a-z0-9]{2,8};/is
你有没有尝试过:
$str = strip_tags(html_entity_decode('1<b>2'));
或者如果你想用其他东西替换标签,比如空格:
$str = html_entity_decode('1<b>2');
$output = preg_replace('/<\/?[^\>]+>/ui', ' ',$str);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.