3
A
回答
2
http://pl.php.net/manual/en/function.ereg.php
注:自PHP 5.3.0中,正则表达式扩展有利于PCRE扩展的弃用。调用此函数将发出E_DEPRECATED通知。有关转换为PCRE的帮助,请参阅差异列表。
1
它说,为什么在documentation page:
注:作为PHP 5.3.0中,正则表达式扩展有利于PCRE extension的弃用。调用此函数将发出E_DEPRECATED通知。有关转换为PCRE的帮助,请参阅list of differences。
2
Ereg已弃用,因为它已被PCRE扩展替代。究其原因(一个或多个)它被取代,不推荐使用在以下链接回答,但你在这里保存一段时间是复制并粘贴答案:
注:的preg_match(),它使用Perl兼容的正表达式语法,通常是ereg()的更快替代方法。
一个区别是,额日格查找最长匹配的结果,而预浸寻找的第一个结果。以下是两者之间的区别列表,以帮助您确定如何更好地更新代码: http://www.php.net/manual/en/reference.pcre.pattern.posix.php
需要注意的是,PHP 6.0完全删除了ereg,因此如果您最终将要将代码移动到可能使用PHP 6.0的较新服务器,ereg函数将不再可用。
0
一个可能的原因是性能问题,正如其他人已经回答的那样。
我想补充另一个(但)可能的原因:通过提供该网址
<?php
$arg=$_GET['key'];
if (ereg('^[A-Za-z0-9]+$', $arg) === FALSE){
die('Invalid key');
}
# Do some other things with $arg
?>
人们可以绕过它:
假设你写了这样一段代码(PHP 5.3)
foo.php?key=A%00text
^~~~
与text
部分是任意东西他想,这留下了巨大的安全漏洞的代码。 preg_match()
但是,没有这个问题。所以你最好把你所有的代码移植到preg
,因为ereg
在PHP6.0中已经不再可用了。
相关问题
- 1. 为什么Logger.isInfoEnabled不推荐使用org.jboss.logging.Logger?
- 2. 为什么不推荐使用isJavaLetterOrDigit?
- 3. 为什么不推荐使用JButton.enable?
- 4. 为什么不推荐使用struts2 FilterDispatcher?
- 5. 为什么SET不推荐使用?
- 6. 为什么不推荐使用StringTokenizer?
- 7. std :: iterator为什么不推荐使用?
- 8. Object.observe()为什么不推荐使用
- 9. 为什么不推荐使用std :: strstream?
- 10. 为什么不推荐使用body.scrollTop?
- 11. 为什么不推荐HibernateTemplate?
- 12. 为什么不推荐使用window.showModalDialog?代替使用什么?
- 13. 为什么不推荐使用assert_template,而应该使用什么?
- 14. 为什么在OOP PHP中不推荐直接访问属性?
- 15. 为什么在Rails中不推荐使用auto_link?
- 16. 为什么在Python中不推荐使用MutableString?
- 17. 为什么在JAVA中不推荐使用默认包?
- 18. 为什么在Django 1.5+中不推荐使用markdown?
- 19. 为什么不推荐在SQL中使用“LIKE”?
- 20. 为什么在Rails 3中不推荐使用验证?
- 21. 为什么在Guava中不推荐使用Files.deleteDirectoryContents()?
- 22. 为什么在Angular中不推荐使用“导出默认”?
- 23. 为什么在glibc中不推荐使用'sys_errlist'?
- 24. 为什么在Akka 2.0.2中不推荐使用akka.jsr166y.ForkJoinPool?
- 25. jQuery切换不推荐使用什么?
- 26. PHP对不推荐使用的函数有什么作用?
- 27. 为什么Spring Boot 1.5.3中不推荐使用GuavaCacheConfiguration?
- 28. Spring安全中的接口WebSecurityExpressionHandler为什么不推荐使用?
- 29. 如何找出iOS中为什么不推荐使用函数?
- 30. 为什么不推荐使用包org.apache.hadoop.mapred中的大多数类?