This question already has answers here:
How can I convert ereg expressions to preg in PHP?
(4个答案)
1年前关闭。
我在一个大型PHP应用程序上工作(> 100万行,已有10年的历史了),该应用程序广泛使用
我很清楚为什么不推荐使用
有谁知道在PHP中对
你明白了。同样,PEAR package PHP Compat可能也是可行的解决方案。
(4个答案)
1年前关闭。
我在一个大型PHP应用程序上工作(> 100万行,已有10年的历史了),该应用程序广泛使用
ereg
和ereg_replace
-目前在516个类中有1,768个唯一正则表达式。我很清楚为什么不推荐使用
ereg
,但是显然迁移到preg
可能会涉及很多。有谁知道在PHP中对
ereg
的支持可能会维持多长时间,和/或是否有任何建议以这种规模迁移到preg
。我怀疑从ereg到preg的自动翻译是不可能的/不切实际的? 最佳答案
我不确定何时删除ereg
,但我的赌注是从PHP 6.0开始。
关于第二个问题(将ereg
转换为preg
)似乎并不难,如果您的应用程序的行数超过一百万,那么您肯定有足够的资源让某人最多完成一周的工作。我会grep您代码中的所有ereg_
实例,并在您喜欢的IDE中设置一些宏(添加分隔符,修饰符等简单的东西)。
我敢打赌,大多数1768个正则表达式都可以使用宏进行移植,而其他的则很好。
另一个选择可能是在ereg
函数周围编写包装器(如果不可用),并根据需要实现the changes:
if (function_exists('ereg') !== true)
{
function ereg($pattern, $string, &$regs)
{
return preg_match('~' . addcslashes($pattern, '~') . '~', $string, $regs);
}
}
if (function_exists('eregi') !== true)
{
function eregi($pattern, $string, &$regs)
{
return preg_match('~' . addcslashes($pattern, '~') . '~i', $string, $regs);
}
}
你明白了。同样,PEAR package PHP Compat可能也是可行的解决方案。
09-19 03:26