提问人:pccamp 提问时间:7/15/2023 更新时间:7/15/2023 访问量:37
去除除 <Pre 内部以外的所有标签
Strip all tag except inside <Pre
问:
我有一根绳子。
$string = '<p>someText</p><li>someText</li><pre><p>someText</p></pre>';
I
想要剥离除 pre 标签之外的所有标签。 例如,$string的输出是:
$string = 'someTextsomeText<pre><p>someText</p></pre>';
这是行不通的:
$string = strip_tags($string,<pre>);
答:
0赞
Anthony Bird
7/15/2023
#1
这是一个解决方案 - 示例字符串为:
$string = '<p>some Text First</p><li>some Text First</li><pre><p>someTextInside</p></pre><p>Some Text Last</p>';
制作图案以查找其中的预告和内容:
$pattern="/\<pre>(.*?)<\/pre>/";
使用 preg_match 查找模式:
$preSection = preg_match($pattern, $string, $matches);
在 BEFORE pre 和 AFTER pre 之前拆分为部分:
$parts = explode($matches[0], $string);
从 pre 之前和之后的内容中剥离标签,并组合在一起以形成最终字符串:
$final = strip_tags($parts[0]) . $matches[0] . strip_tags($parts[1]);
echo $final;
// RESULT: some Text Firstsome Text First<pre><p>someTextInside</p></pre>Some Text Last
评论
0赞
Anthony Bird
7/16/2023
如果有帮助,请接受回答。
评论
strip_tags
不会做你需要的。您需要找到另一种解决方案。这看起来如何取决于你,有很多方法可以解决这个问题(例如,只在子字符串之外运行,或者用占位符替换,然后替换它们,等等)。strip_tags
<pre>...</pre>
<pre>...</pre>