English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PHP 클래스
사용자 입력을 정리하고 검증하다
데이터를 검증하려면 필터 확장을 사용하여 PHP의 filter_var() 기능을 사용해야 합니다. 기본 문법은 다음과 같습니다:
filter_var(variable, filter, options)
이 함수는 세 가지 매개변수를 가지고 있으며, 마지막 두 가지 매개변수는 선택 사항입니다. 첫 번째 매개변수는 필터링할 값, 두 번째 매개변수는 적용할 필터의 ID, 세 번째 매개변수는 필터와 관련된 옵션 배열입니다. 그 작동 방식을 보겠습니다.
아래 예제에서는 문자열에서 모든 HTML 태그를 제거하여 문자열을 정리할 것입니다:
<?php //사용자注释 예제 $comment = "<h1>혹시 오늘은 잘 지내셨나요?</h1>"; //문자열을 정리하고 출력하다 $sanitizedComment = filter_var($comment, FILTER_SANITIZE_STRING); echo $sanitizedComment; ?>테스트를 보세요‹/›
위 예제의 출력은 다음과 같습니다:
혹시 오늘은 잘 지내셨나요?
아래 예제에서는 이 값이 유효한 정수인지 확인할 것입니다.
<?php // 예제 정수 값 $int = 20; // 인증하는 정수 값 if(filter_var($int, FILTER_VALIDATE_INT)){ echo "<b>$int</b>이는 유효한 정수입니다"; } else{ echo "<b>$int</b>이는 유효한 정수가 아닙니다"; } ?>테스트를 보세요‹/›
위의 예제에서 \$int 변수를 0으로 설정하면 예제 코드는 무효한 정수 메시지를 표시합니다. 이 문제를 해결하려면 다음과 같이 값을 명시적으로 테스트해야 합니다:
<?php //예제 정수 값 \$int = 0; // Validate sample integer value if(filter_var(\$int, FILTER_VALIDATE_INT) === 0 || filter_var(\$int, FILTER_VALIDATE_INT)){ echo "The <b>\$int</b>이는 유효한 정수입니다"; } else{ echo "The <b>\$int</b>이는 유효한 정수가 아닙니다"; } ?>테스트를 보세요‹/›
아래의 예제에서 값을 유효한 IP 주소인지 확인합니다.
<?php // IP 주소 \$ip = "172.16.254.1"; // IP 주소��证 예제 if(filter_var(\$ip, FILTER_VALIDATE_IP)){ echo "<b>\$ip</b>이는 유효한 IP 주소입니다"; } else { echo "<b>\$ip</b>이는 유효한 IP 주소가 아닙니다"; } ?>테스트를 보세요‹/›
FILTER_FLAG_IPV를 사용하여 별도로 사용할 수 있습니다4FILTER_FLAG_IPV를 사용하여 별도로 사용할 수 있습니다6또는FILTER_FLAG_IPV4또는 IPV6 IP 주소는��证이 적용됩니다. 다음은 예제입니다:
<?php // IP 주소 \$ip = "172.16.254.1"; // IP 주소��证 예제 if(filter_var(\$ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { echo "<b>\$ip</b>이는 유효한 IPV입니다6주소"; } else { echo "<b>\$ip</b>이는 유효한 IPV 아닙니다6주소"; } ?>테스트를 보세요‹/›
아래의 예제에서 이메일 주소를 정리하고 확인하는 방법을 보여드립니다.
<?php // 이메일 주소 \$email = "someone@@example.com"; //이메일에서 모든 불법 문자를 제거합니다 \$sanitizedEmail = filter_var(\$email, FILTER_SANITIZE_EMAIL); //이메일 주소��证 if(\$email == \$sanitizedEmail && filter_var(\$email, FILTER_VALIDATE_EMAIL)){ echo "\$email 은(는) 유효한 이메일 주소입니다"; } else{ echo "\$email 은(는) 유효한 이메일 주소가 아닙니다"; } ?>테스트를 보세요‹/›
주의:FILTER_SANITIZE_EMAIL 필터는 문자, 숫자와 제공된 이메일 주소 문자열을 제외한 모든 무효 문자를 제거합니다!#$%&'*+-=?^_`{|}~@.[]。
다음 예제는 URL을 정리하고 검증하는 방법을 보여줍니다.
<?php // url 예제 $url = "http:://www.example.com" //주소에서 모든 불법 문자를 제거 $sanitizedUrl = filter_var($url, FILTER_SANITIZE_URL); // 웹사이트 URL을 검증 if($url == $sanitizedUrl && filter_var($url, FILTER_VALIDATE_URL)){ echo "$url은(는) 유효한 웹사이트 주소입니다"; } else{ echo "$url은(는) 유효한 웹사이트 주소가 아닙니다"; } ?>테스트를 보세요‹/›
주의:FILTER_SANITIZE_URL 필터는 문자, 숫자 및 제공된 URL 문자열에서 모든 무효 문자를 제거합니다$-_.+!*(),{}|\\^~[]`<>#%";/?:@&=。
여기서 flag를 사용하여 URL이 쿼리 문자열을 포함하는지 확인할 수 있습니다 FILTER_FLAG_QUERY_REQUIRED, 예를 들어 다음 예제와 같이:
<?php //url $url = "http://www.example.com?topic=filters"; //쿼리 문자열을 얻기 위해 웹사이트 주소를 검증 if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)){ echo "<b>$url</b> 쿼리 문자열을 포함합니다"; } else{ echo "<b>$url</b> 쿼리 문자열을 포함하지 않습니다"; } ?>테스트를 보세요‹/›
참조하십시오HTML URL튜토리얼을 참조하여URL의 다른 구성 요소를 검증합니다.
다음 예제는 제공된 값이 정수인지 여부와 그가 0에서100의 범위 내.
<?php // 예제 정수 값 $int = 75; //샘플 정수 값을 검증 if(filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range" => 0,"max_range" => 100)))){ echo "<b>$int</b> 0에서100의 범위 내"; } else{ echo "<b>$int</b> 0에서100의 범위 내"; } ?>테스트를 보세요‹/›