繁体   English   中英

两个针之间的php preg_replace

[英]php preg_replace between two needles

我知道之前已经问过并回答了这类问题,但我无法在模式匹配中找出错误。

由于一些非常棘手的遗留数据库输入我试图删除两个html特殊字符之间的任何东西,然后将继续处理后遗骸。 原始代码在1<b>2之后变为1<b>2以加粗任何东西,但最终为1&lt;b&gt;2

我希望留下1&lt;&gt;21 2

我甚至关闭?

thx艺术

$str = '1&lt;b&gt;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&lt;b&gt;2'));

或者如果你想用其他东西替换标签,比如空格:

$str = html_entity_decode('1&lt;b&gt;2');
$output = preg_replace('/<\/?[^\>]+>/ui', ' ',$str);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM