2013-02-23 2 views
3

Итак, я использовал eregi в своем почтовом скрипте, но в последнее время я получаю ошибку, которую функция устарела.Альтернатива eregi() в php

Итак, что это самый простой способ заменить следующий фрагмент кода:

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

Любая помощь приветствуется :)

+1

[Как подтвердить адрес электронной почты в PHP] (http://stackoverflow.com/questions/12026842/how-to-validate-an-email-address-in-php/12026863 # 12026863) – PeeHaa

ответ

6
if (!preg_match("/^[A-Z0-9.%-][email protected][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'; 
+0

Спасибо за ответ, я попробовал его сейчас, но теперь он не отправляет письма. Я не получаю тестовые письма, и с eregi это работает. o.o? Должен ли я изменить что-нибудь еще в моем почтовом скрипте? (если вы хотите, посмотрите на скрипт здесь http://pastebin.com/q7Mfym9q) – idjuradj

+0

@ Николас для проверки подлинности электронной почты лучше использовать filter_var() см. мой ответ. Я обновляю его – Winston

+0

Хм, спасибо за продолжение. Я это рассмотрю. Тем временем я нашел решение. Когда я заменю данную строку на это , если (! Preg_match ("/^[_ \. 0-9a-zA-Z -] + @ ([0-9a-zA-Z] [0-9a-zA-Z -] + \.) + [a-zA-Z] {2,6} $/i ", trim ($ _ POST ['email']))) { это работает :) – idjuradj

Смежные вопросы