【发布时间】:2012-09-28 18:59:58
【问题描述】:
到目前为止,我已经阅读并尝试针对堆栈溢出实施大约 10 种不同的解决方案,但它们都不起作用。我要做的就是替换两个 pre 标签之间的内容(包括标签本身)。我不在乎它是正则表达式还是直接 php。有人有什么建议吗?
一个例子是:
This is how to remove pre tags and their contents:<br/>
<pre>
<?php>
[code here]
<?php>
That's all there is to it.
变成:
This is how to remove pre tags and their contents:</br>
That's all there is to it.
这需要在 html 呈现到页面之前发生。
我不确定 DOMDocument 是否有效。我的代码的上下文是它发生在表达式引擎的插件(基于 codeigniter / php 的 CMS)中。该插件将 html 截断为设定的字符长度,并将其呈现回父模板以在浏览器中呈现 - 因此 domdocument 无法呈现给浏览器 - 它只需将代码返回给父模板已删除标签和内容。
【问题讨论】:
-
当然不是正则表达式。试试DOMDocument
-
Never with regex。而且直接 PHP 会更糟。
-
解析 HTML 不是正则表达式的工作。原因如下:htmlparsing.com/regexes.html 请查看htmlparsing.com/php.html 以获取正确方法的示例。
-
您的示例中是否应该有
</pre>标签?当您说 HTML 被截断时,您的意思是这发生在您的代码获取它之前,因此它可能没有正确平衡标签?
标签: php regex html-parsing