php 필터 구현 코드
$str = '51ab';
preg_match('/^[0-9]*$/', $str);
is_numeric($str);
새로운 검증 함수는 다음과 같은 방식으로 사용할 수 있다. $str ='51ab'.echo filter_var($str, FILTER_VALIDATE_INT) ? 'is valid' : 'is not valid';FILTER_VALIDATE_INT는 $str가 정수인지 확인하는 PHP 정의 필터입니다.실제로 이것은 echo FILTER_를 통해 수치 상수입니다.VALIDATE_INT;검색 값은 257입니다.그래서 우리도 사용할 수 있다: $str ='51ab'.echo filter_var($str, 257) ? 'is valid' : 'is not valid';PHP에 자주 사용되는 필터가 많이 정의되어 있습니다. filter_list () 에서 지원하는 모든 필터 이름 (문자열로 표시) 을 얻은 다음 filter_id(string) 수치 가져오기:print_r(filter_list());//지원되는 모든 필터 이름입니다.echo '========='; echo filter_id('int');//'int'는 filter _list가 반환하는 필터 이름입니다.이상은 다음과 같은 내용을 입력합니다:array(0=>int', 1=>'boolean', 2=>'float', 3=>'validate_regexp')=============== 257Sanitizing 필터 위에 있는 것은 데이터 형식이 정확한지 확인하는 것입니다. 때로는 무관한 내용을 필터하는 것도 중요합니다.SANITIZE 필터는 다음과 같은 기능을 제공합니다. 예를 들어 이메일에 남은 문자를 필터링합니다. $email ='
$options = array(
'options'=>array('max_range'=>50),
'flags'=>FILTER_FLAG_ALLOW_OCTAL,
);
$str = '51';
echo filter_var($str, FILTER_VALIDATE_INT, $options) ? 'is valid' : 'is not valid';
위에서 is not valid로 되돌아옵니다.왜냐하면 max_range는 최대치를 50까지만 정합니다.FILTER_FLAG_ALLOW_OCTAL에서 검증할 수 있는 데이터는 8진수, 즉 0으로 시작됩니다. $options 매개 변수는 두 개의 요소를 포함하는 수조입니다. options와flags입니다.만약flags 원소만 있다면 수조를 사용하지 않고 직접 전달할 수 있다.외부 데이터 검증은 PHP 스크립트가 자체 생성한 데이터를 제외하고 사용자가 제출한 데이터가 대부분을 차지한다.물론 저희가 직접 filter를 써도 돼요.var 필터링:
if(isset($_GET['age']))
{
echo filter_var($_GET['age'], FILTER_VALIDATE_INT) ? 'is valid' : 'is not valid';
}
그러나 PHP에는 외부 소스를 검증하는 데 사용되는 몇 가지 함수가 있습니다
if(filter_has_var(INPUT_GET, 'age'))
{
echo filter_input(INPUT_GET, 'age', FILTER_VALIDATE_INT) ? 'is valid' : 'is not valid';
}
filter_ 대비var,filter_input에는 데이터의 출처를 지정하는 데 사용할 매개 변수가 하나 더 있습니다.그리고 filter_has_var () 는 지정된 데이터가 있는지 판단하는 데 사용됩니다.한 번에 여러 개의 데이터를 필터링하는 PHP는 filter_var_array 및 filter_input_array 함수는 여러 개의 데이터를 한꺼번에 검증하는 데 사용됩니다.이것은 php에서 온 것이다.net의 실례, filter_ 설명var_array () 를 어떻게 사용하는지..
$data = array(
'product_id' => 'libgd<script>',
'component' => '10',
'versions' => '2.0.33',
'testscalar' => array('2', '23', '10', '12'),
'testarray' => '2',
);
$args = array(
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => array('filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
'options' => array('min_range' => 1, 'max_range' => 10)
),
'versions' => FILTER_SANITIZE_ENCODED,
'doesnotexist' => FILTER_VALIDATE_INT,
'testscalar' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
),
'testarray' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
)
);
$myinputs = filter_var_array($data, $args);
사용자 정의 필터는 특수한 필터를 통해 FILTER_CALLBACK은 사용자 정의 필터를 지정합니다. 아래 필터는 모든 메일 주소의 @를 # 로 변환합니다
function fun($value)
{
return strtr($value,'@','#');
}
$var = filter_var('[email protected]', FILTER_CALLBACK, array('options' => 'fun'));
echo $var;
其它
ID(필터 상수)
이름(filter_list() 함수가 반환하는 이름)
사용 가능한 옵션
표지 위치
묘사
Validating
FILTER_VALIDATE_BOOLEAN
"boolean"
FILTER_NULL_ON_FAILURE
어려운 데이터가 "1", "true", "on", "yes"일 때true를 되돌려줍니다. 그렇지 않으면false를 되돌려줍니다.FILTER_가 설정된 경우NULL_ON_failure 로고 위치는 "0", "false", "off", "no", "만 false를 되돌리고 다른 비true 값은null을 되돌려줍니다.
FILTER_VALIDATE_EMAIL
"validate_email"
메일박스 확인
FILTER_VALIDATE_FLOAT
"float"
decimal
FILTER_FLAG_ALLOW_THOUSAND
부동 소수점 확인
FILTER_VALIDATE_INT
"int"
min_range, max_range
FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX
지정된 범위 내의 정수 값 확인
FILTER_VALIDATE_IP
"validate_ip"
FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE
IP 주소 확인
FILTER_VALIDATE_REGEXP
"validate_regexp"
regexp
정규 표현식 검증
FILTER_VALIDATE_URL
"validate_url"
FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED
URL 확인
Sanitizing
FILTER_SANITIZE_EMAIL
"email"
영문자 제외, 숫자 및! #$% &'*+-/=?^_'{|}~@.[] 이외의 문자입니다.
FILTER_SANITIZE_ENCODED
"encoded"
FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH
URL 인코딩 문자열, 지정한 문자열을 제거하거나 인코딩합니다.
FILTER_SANITIZE_MAGIC_QUOTES
"magic_quotes"
addslashes () 함수 적용
FILTER_SANITIZE_NUMBER_FLOAT
"number_float"
FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC
제거 숫자, +- 및.,eE 이외의 문자
FILTER_SANITIZE_NUMBER_INT
"number_int"
숫자 및 + - 이외의 문자 제거
FILTER_SANITIZE_SPECIAL_CHARS
"special_chars"
FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_HIGH
HTML 이스케이프 문자,'&><및 ASCII 값이 32보다 작은 문자. 그리고 기타 지정된 문자.
FILTER_SANITIZE_STRING
"string"
FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP
탭을 제거하거나 지정한 문자를 제거하거나 인코딩합니다.
FILTER_SANITIZE_STRIPPED
"stripped"
Alias of "string"filter.
FILTER_SANITIZE_URL
"url"
문자, 숫자 및 $-_.+를 제외한 모든 문자를 삭제합니다!*'(),{}|\\^~[]`<>#%";/?:@&=
FILTER_UNSAFE_RAW
"unsafe_raw"
FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP
아무런 변경도 하지 않거나, 표지판에 따라 알파벳을 제거하거나 인코딩해서 지정합니다.
FILTER_CALLBACK
"callback"
FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP
사용자 정의 필터
标志位
ID
사용 가능한 필터
묘사
FILTER_FLAG_STRIP_LOW
FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW
ASCII 32보다 작은 문자를 제거합니다.
FILTER_FLAG_STRIP_HIGH
FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW
ASCII가 127에 있는 문자를 제거합니다.
FILTER_FLAG_ALLOW_FRACTION
FILTER_SANITIZE_NUMBER_FLOAT
소수점 구분자 허용 (.)
FILTER_FLAG_ALLOW_THOUSAND
FILTER_SANITIZE_NUMBER_FLOAT, FILTER_VALIDATE_FLOAT
천 자리 구분자 허용 (,)
FILTER_FLAG_ALLOW_SCIENTIFIC
FILTER_SANITIZE_NUMBER_FLOAT
과학 계수법 (e 또는 E) 을 허용합니다.
FILTER_FLAG_NO_ENCODE_QUOTES
FILTER_SANITIZE_STRING
큰따옴표 (큰따옴표와 큰따옴표) 를 인코딩하지 않습니다.
FILTER_FLAG_ENCODE_LOW
FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW
ASCII가 32보다 작은 문자를 인코딩합니다.
FILTER_FLAG_ENCODE_HIGH
FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW
ASCII가 127보다 큰 문자를 인코딩합니다.
FILTER_FLAG_ENCODE_AMP
FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW
인코딩 & 기호.
FILTER_NULL_ON_FAILURE
FILTER_VALIDATE_BOOLEAN
검증 데이터가 다음 문자열이 아닐 때 (yes, no, 1,0,true,false,on,off) 되돌려줍니다.
FILTER_FLAG_ALLOW_OCTAL
FILTER_VALIDATE_INT
8진수 값을 허용합니다(0 시작).
FILTER_FLAG_ALLOW_HEX
FILTER_VALIDATE_INT
16진수 값을 허용합니다.(0X 또는 0x로 시작).
FILTER_FLAG_IPV4
FILTER_VALIDATE_IP
IP4 형식 문자열.
FILTER_FLAG_IPV6
FILTER_VALIDATE_IP
IP6 형식 문자열.
FILTER_FLAG_NO_PRIV_RANGE
FILTER_VALIDATE_IP
RFC에서 지정한 개인 도메인 IPIP4는 다음과 같은 범위 10.0.0/8, 172.16.0.0/12, 192.168.0.0/16입니다.또는 IP6 다음으로 시작하는 도메인: FD 또는 FC
FILTER_FLAG_NO_RES_RANGE
FILTER_VALIDATE_IP
요구 사항은 예약된 IP 범위에 없습니다.IPv4 ranges:0.0.0.0/8, 169.254.0.0/16,192.0.2.0/24 and 224.0.0.0/4.IP6에는 적용할 수 없습니다.
FILTER_FLAG_PATH_REQUIRED
FILTER_VALIDATE_URL
URL에 경로 섹션이 포함되어야 합니다.
FILTER_FLAG_QUERY_REQUIRED
FILTER_VALIDATE_URL
URL 질의 문자열이 필요합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.