【问题标题】:Alternative to eregi() in php [duplicate]php中eregi()的替代方法[重复]
【发布时间】:2013-02-09 09:10:48
【问题描述】:

所以,我在我的邮件脚本中使用了 eregi,但最近,我收到了该函数已弃用的错误。

那么,替换以下代码的最简单方法是什么:

if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email'])))?

任何帮助表示赞赏:)

【问题讨论】:

标签: php eregi


【解决方案1】:
 if (!preg_match("/^[A-Z0-9.%-]+@[A-Z0-9.%-]+.[A-Z]{2,4}$/", trim($_POST['email'])))

使用 preg_match。

因为 ereg_* 函数在 PHP >= 5.3 中已弃用

还可以更好地用于电子邮件验证filter_var

if (!filter_var(trim($_POST['email']), FILTER_VALIDATE_EMAIL))
    echo 'Email is incorrect';

【讨论】:

  • 感谢回复,我试了一下,现在发不了邮件了。我没有收到测试邮件,并且使用 eregi 可以正常工作。 o.o?我应该更改邮件脚本中的其他内容吗? (如果你想看这里的脚本pastebin.com/q7Mfym9q
  • @Nicholas 进行电子邮件验证更好地使用 filter_var() 查看我的答案。我更新了它的
  • 嗯,感谢您的跟进。我会考虑的。与此同时,我找到了解决方案。当我用这个替换给定的行时 if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z- ]+\.)+[a-zA-Z]{2,6}$/i", trim($_POST['email']))) { 有效:)
  • @Nicholas 你也可以像这样减少表情if(!preg_match("/^[_.\da-z-]+@[a-z\d][a-z\d-]+\.+[a-z]{2,6}$/i", trim($_POST['email'])))
猜你喜欢
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2020-09-20
  • 2019-09-27
  • 2021-09-12
相关资源
最近更新 更多