PHP 초보자를 위한 고급 필터
숫자가 범위 내에 있는지 감지
다음 예에서는 filter_var() 함수를 사용하여 INT 유형 변수가 1~200 내에 있는지 감지합니다. :
<?php header("Content-type: text/html; charset=utf-8");//设置编码 $int = 122; $min = 1; $max = 200; if (filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range"=>$min, "max_range"=>$max))) === false) { echo("变量值不在合法范围内"); } else { echo("变量值在合法范围内"); } ?>
IPv6 주소 감지
다음 예에서는 filter_var() 함수를 사용하여 $ip 변수가 IPv6 주소인지 감지합니다.
<?php header("Content-type: text/html; charset=utf-8");//设置编码 $ip = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334"; if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) { echo("$ip 是一个 IPv6 地址"); } else { echo("$ip 不是一个 IPv6 地址"); } ?>
URL 감지 - QUERY_STRING(쿼리 문자열)을 포함해야 함
다음 예에서는 filter_var() 함수를 사용하여 $url에 다음이 포함되어 있는지 감지합니다. 쿼리 문자 문자열:
<?php header("Content-type: text/html; charset=utf-8");//设置编码 $url = "http://www.baidu11.com.cn"; if (!filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false) { echo("$url 是一个合法的 URL"); } else { echo("$url 不是一个合法的 URL"); } ?>
ASCII 값이 127보다 큰 문자 제거
다음 예에서는 filter_var() 함수를 사용하여 쿼리 문자에서 ASCII를 제거합니다. 값이 127보다 큰 문자 문자열인 경우 HTML 태그도 제거할 수 있습니다:
<?php $str = "<h1>Hello WorldÆØÅ!</h1>"; $newstr = filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH); echo $newstr; ?>