preg_replace的PHP问题

时间:2010-06-22 13:06:24

标签: php regex

我创建了一个函数,通过条带化从HTML中获取纯文本 JavaScript,CSS,HTML标签等我依赖PHP的preg_replace 功能删除某些模式。网页已经存储在硬盘上,所以我从磁盘上获取源代码。该函数适用于单个文件的源代码,但如果我追加多个文件的源代码并将其传递给我的函数,则preg_replace函数失败并返回FALSE。我试过get_last_error,但没有报道。在缩小之前我也要修剪源代码(删除EOF)。

还请告诉我如何在Windows上实现正则表达式,因为与Linux不同,Windows上没有grep。

2 个答案:

答案 0 :(得分:1)

您是否看过PHP内置的strip_tags()函数?

否则,我们不知道你的代码实际上在做什么,所以很难确定它为什么不能按你的意愿工作。

答案 1 :(得分:1)

如果您有长文件,那么preg系列函数将返回false,因为PHP中存在回溯限制(请点击此处:http://bugs.php.net/bug.php?id=40846)。

您可以尝试处理文件的较小部分,并在剥离标记后将其连接起来。

如果你非常依赖,你也可以优化你的正则表达式而不是使用这么多的回溯。*。例如

/<.*?>/

可以优化为

/<[^>]+>/

等等。