将eregi_replace转换为preg_replace时出错

时间:2013-10-18 19:31:48

标签: php

如何将此代码中的eregi_replace更改为preg_replace()

这是原始代码:

$title = eregi_replace('</?[a-z][a-z0-9]*[^<>]*>', '', $title );

我只需要用eregi_replace覆盖preg_replace,还是需要做更多?

我试过这个和一些变化:

$title = preg_match('#<\/?[a-z][a-z0-9]*[^<>]*>#', '', $title );

当提交标题时,它变为0并且值丢失。

1 个答案:

答案 0 :(得分:1)

在这里,我将轻松回答其他用户没有时间回复:

eregi_replace()使用POSIX regex而preg_replace()使用Perl兼容正则表达式PCRE,它们可能有差异。

但是在你的情况下,形成良好的正则表达式,它仍然是相同的。它会删除标题文本中的所有HTML标记:

旧正则表达式:

$title = eregi_replace('</?[a-z][a-z0-9]*[^<>]*>', '', $title );

新正则表达式:

$title = preg_replace('#</?[a-z][a-z0-9]*[^<>]*>#i', '', $title );