Устарела: Функция ereg() устарела [дубликат]
Возможный Дубликат:
Как я могу преобразовать выражения ereg в preg в PHP?
Моя контактная форма работает в другом режиме, но я продолжаю получать следующую ошибку:
Устарело: Функция ereg() устарела в/home/.....
Я действительно теряюсь здесь, но я полагаю, что это та часть, которая нуждается в некоторой корректировке.
if ( empty($_REQUEST['name']) ) {
$pass = 1;
$alert .= $emptyname;
} elseif ( ereg( "[][{}()*+?.\\^$|]", $_REQUEST['name'] ) ) {
$pass = 1;
$alert .= $alertname;
}
if ( empty($_REQUEST['email']) ) {
$pass = 1;
$alert .= $emptyemail;
} elseif ( !eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z] {2,3})$", $_REQUEST['email']) ) {
$pass = 1;
$alert .= $alertemail;
}
if ( empty($_REQUEST['message']) ) {
$pass = 1;
$alert .= $emptymessage;
} elseif ( preg_match( "[][{}()*+?\\^$|]", $_REQUEST['message'] ) ) {
$pass = 1;
$alert .= $alertmessage;
}
Поиск решения был бы весьма признателен
3 answers
Вы должны использовать preg_match
вместо того, чтобы ereg
потому что последнее устарело.
Замена его не имеет большого значения:
ereg( "[][{}()*+?.\\^$|]", $_REQUEST['name'] )
Станет:
preg_match( "/[][{}()*+?.\\^$|]/", $_REQUEST['name'] )
P.s. Мне пришлось изменить более ста файлов, когда я переносил свой старый проект на PHP 5.3, чтобы избежать изменения вручную, я использовал следующий скрипт, чтобы сделать это за меня:
function replaceEregWithPregMatch($path) {
$content = file_get_contents($path);
$content = preg_replace('/ereg\(("|\')(.+)(\"|\'),/',
"preg_match('/$2/',",
$content);
file_put_contents($path, $content);
}
Я надеюсь, что это поможет.
Как ты и сказал - не важно, это работает как заклинание:
if ( empty($_REQUEST['name']) ) {
$pass = 1;
$alert .= $emptyname;
} elseif ( preg_match( "/[][{}()*+?.\\^$|]/", $_REQUEST['name'] ) ) {
$pass = 1;
$alert .= $alertname;
}
if ( empty($_REQUEST['email']) ) {
$pass = 1;
$alert .= $emptyemail;
} elseif ( !preg_match("#^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$#i", $_REQUEST['email']) ) {
$pass = 1;
$alert .= $alertemail;
}
if ( empty($_REQUEST['message']) ) {
$pass = 1;
$alert .= $emptymessage;
} elseif ( preg_match( "/[][{}()*+?\\^$|]/", $_REQUEST['message'] ) ) {
$pass = 1;
$alert .= $alertmessage;
}
Спасибо, ребята