Нещо вместо ereg(i)

misho

Registered
В сайта на PHP пише, че ereg и eregi се премахват от PHP 6. С какво мога да заменя проверката дали един email е валиден?
Код:
!eregi("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $email)
А как да направя проверка дали даден url адрес е валиден?
 
if (filter_var('myname@mydomain.com', FILTER_VALIDATE_EMAIL)) {
echo('Е-пощата е валидна.');
} else {
die('Невалидна е-поща.');
}
За URL адрес, замени втория аргумент с FILTER_VALIDATE_URL

Иначе може да ползваш и preg_match, като алтернатива на ereg/i.
 
Благодаря! :?:
gLaVoReZa, първия начин, който си дал изглежда далеч по-удобен, но допуска някои очевидно невалидни имейл адреси.

Ако на някой му потрябват, тук има доста проверки, като за да са валидни за preg_match трябва само да се добява по една наклонена черта (/) в началото и в края. :wink:
 
Аз за валиден имейл адрес ползвам проверка с preg_match :)

$preg=preg_match('/[a-z0-9_\.]+@[a-z0-9]+\.[a-z]{2,4}$/', $email);
 
misho каза:
Благодаря! :?:
допуска някои очевидно невалидни имейл адреси.

Например? Аз пробвах разни комбинации, изглeжда като да работи добре :)
 
DownFall каза:
misho каза:
Благодаря! :?:
допуска някои очевидно невалидни имейл адреси.

Например? Аз пробвах разни комбинации, изглeжда като да работи добре :)
Пробвай да напишеш имейл само с една буква след точката! Приема го.

Иначе аз в момента съм с това:
Код:
preg_match("/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$/", $email)
 
<?
$email = 'myname@mydomain.co.uk';
if (preg_match('/^[a-z][a-z0-9\.\_]{2,29}[\@][a-z0-9\-]{2,63}[\.][a-z]{0,4}[\.]{0,1}[a-z]{2,4}$/i', $email)) {
echo('Валиден.');
} else {
echo('Невалиден.');
}
?>
Тествайте тази проверка. :)
 
bancov96 каза:
Ereg(i) го премахнаха и във версия 5.3 на езика.
Е, не е като да го няма. Аз съм с 5.3.1 и работи, но все пак е добре да не си създавам проблеми за в бъдеще. :)
 

Back
Горе