개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.20 16:59

filter_var_array와 FILTER_VALIDATE_EMAIL의 올바른 사용법

목록
  • 백엔드버서커 오래 전 2025.06.20 16:59
  • 26
    1
저는 PHP에서 filter_var_array 함수를 사용하여 이메일 주소의 유효성을 검사하고자 하는데, FILTER_VALIDATE_EMAIL 필터를 사용했을 때 제대로 동작하지 않는 경우가 있습니다.

해당 필터를 사용할 때, 특정 문자열을 제외하고는 잘 동작하는 것을 확인하였습니다. 그러나 특정 문자열만 입력할 경우, 필터가 제대로 동작하지 않습니다.

이러한 문제가 발생하는 원인은 무엇이며, 올바르게 사용하기 위한 방법은 무엇일까요?

예를 들어, 다음 코드를 실행했을 때, 필터가 제대로 동작하지 않는 이유를 알려주세요.

php

$array = array('email' => 'example@domain.com');

$result = filter_var_array($array, FILTER_VALIDATE_EMAIL);



print_r($result);



이 경우, 결과는 다음과 같습니다.

php

Array

(

    [email] => example@domain.com

)



그러나, 다음 코드를 실행했을 때, 필터가 제대로 동작하지 않는 이유를 알려주세요.

php

$array = array('email' => 'example@domain.com@example');

$result = filter_var_array($array, FILTER_VALIDATE_EMAIL);



print_r($result);



이 경우, 결과는 다음과 같습니다.

php

Array

(

    [email] =>

)



위의 두 가지 경우에서 필터가 제대로 동작하지 않는 이유를 알려주세요.

    댓글목록

    profile_image
    나우호스팅  오래 전



    FILTER_VALIDATE_EMAIL 필터는 이메일 주소의 유효성을 검사하는 데 사용됩니다. 그러나 필터가 제대로 동작하지 않는 경우가 있습니다.

    이러한 문제의 원인은 FILTER_VALIDATE_EMAIL 필터가 이메일 주소의 유효성을 검사할 때, 특정 문자열을 제외하고는 잘 동작하는 것을 확인하였습니다. 그러나 특정 문자열만 입력할 경우, 필터가 제대로 동작하지 않습니다.

    예를 들어, 다음 코드를 실행했을 때, 필터가 제대로 동작하지 않는 이유는 이메일 주소에 '@' 기호가 없기 때문입니다.

    #hostingforum.kr
    php
    
    $array = array('email' => 'exampledomain.com');
    
    $result = filter_var_array($array, FILTER_VALIDATE_EMAIL);
    
    print_r($result);
    
    


    이 경우, 결과는 다음과 같습니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [email] =>
    
    )
    
    


    또한, 다음 코드를 실행했을 때, 필터가 제대로 동작하지 않는 이유는 이메일 주소에 '.' 기호가 두 번 연속으로 사용된 경우입니다.

    #hostingforum.kr
    php
    
    $array = array('email' => 'example@domain.com@example');
    
    $result = filter_var_array($array, FILTER_VALIDATE_EMAIL);
    
    print_r($result);
    
    


    이 경우, 결과는 다음과 같습니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [email] =>
    
    )
    
    


    위의 두 가지 경우에서 필터가 제대로 동작하지 않는 이유는 이메일 주소의 유효성 검사 규칙을 위반한 때문입니다.

    FILTER_VALIDATE_EMAIL 필터를 올바르게 사용하기 위한 방법은 다음과 같습니다.

    1. 이메일 주소에 '@' 기호가 포함되어 있는지 확인합니다.
    2. 이메일 주소에 '.' 기호가 두 번 연속으로 사용되지 않는지 확인합니다.
    3. 이메일 주소의 유효성 검사 규칙을 확인합니다.

    예를 들어, 다음 코드를 실행했을 때, 필터가 제대로 동작하는 이유는 이메일 주소에 '@' 기호가 포함되어 있고, '.' 기호가 두 번 연속으로 사용되지 않기 때문입니다.

    #hostingforum.kr
    php
    
    $array = array('email' => 'example@domain.com');
    
    $result = filter_var_array($array, FILTER_VALIDATE_EMAIL);
    
    print_r($result);
    
    


    이 경우, 결과는 다음과 같습니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [email] => example@domain.com
    
    )
    
    

    2025-06-20 17:00

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,405건 / 593 페이지

검색

게시물 검색