2011-03-23 9 views
1

하시기 바랍니다 난이 오류가있어 이메일 주소의 유효성을 검사 eregi() 함수를 사용하는 경우 : 문제를 만들 수 있습니다사용되지 않는 : 함수 eregi()는 C에서 더 이상 사용되지 않습니다 : WAMP

Deprecated: Function eregi() is deprecated in C:\wamp\www\ssiphone\classes\TraitementFormulaireContact.php on line 13 

내 코드를 :

public function verifierMail($mail) 
{ 
    if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $mail)) { 
     return "valid mail"; 
    } 
    else { 
     return "invalid mail"; 
    } 
} 
+1

정규식이 잘못되었습니다. ['filter_Var()'function] (http://pl.php.net/manual/en/function.filter-var.php)을 사용하십시오 - 자신 만의 표현을 작성하는 것이 더 쉽습니다. – Crozin

답변

3

eregi 기능은 PHP의 향후 버전에서 제거 될 것을 의미되지 않습니다.

preg_match 기능으로 대체 할 수 있습니다.이 기능은 거의 동일합니다.

샘플 코드 (테스트되지 않은) :

public function verifierMail($mail) 
{ 
if(preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $mail)) { 
    return "valid mail"; 
} 
else { 
    echo "invalid mail"; 
} 

는/나는 그것을 대문자와 소문자를 구별하게

+0

고맙습니다. – Malloc

1

ereg_*preg_*으로 바꾸는 것 외에도 bui filter_var() 기능 ltin :

filter_var($mail, FILTER_VALIDATE_EMAIL) 

당신은 여전히 ​​(당신이 상상할 않을 것 유효한 많은 전자 우편이있다) 위음성을 얻을 것이다,하지만 여전히 가난한 정규 표현식보다 더 낫다.

관련 문제