我有一个php联系表单,我在几个不同的网站上使用过。我试图在新网站上实现相同的,但我收到以下消息:
不推荐使用:第36行/home/content/58/10223058/html/contact-1.php弃用了函数eregi()
以下是我的代码中的第36行:
if(!eregi($string_exp,$name)) {
$error_message .= 'The Name you entered does not appear to be valid.<br />';
}
我确信这有一个简单的解决方法,但我是PHP的新手,不知道如何解决这个问题!
非常感谢任何帮助。三江源
答案 0 :(得分:4)
1)这只是一个警告。尽管有警告,我猜测代码仍然有效。正确的吗?
2)您可以通过Google搜索“函数eregi()已弃用”来修复它。例如:
http://takien.com/513/how-to-fix-function-eregi-is-deprecated-in-php-5-3-0.php
// Old
if(!eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $str)) {
$msg = 'email is not valid';
}
else {
$valid = true;
}
// New
if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $str)) {
$msg = 'email is not valid';
}
else {
$valid = true;
}
完整的PHP在线文档在这里:
preg_match()的“手册页”在这里:
答案 1 :(得分:3)
在大多数情况下,您可以替换
if(!eregi($string_exp,$name)) {
与
if(!preg_match('/'.$string_exp.'/i',$name)) {
但并非总是如此 - 您必须检查模式($string_exp
)。
但是,您可以通过将此消息放在eregi()
调用之前的某个位置来禁用该消息:
error_reporting(error_reporting() & ~E_DEPRECATED);