>백엔드 개발 >PHP 튜토리얼 >PHP 데이터 필터링에 대해 자세히 설명하는 기사

PHP 데이터 필터링에 대해 자세히 설명하는 기사

藏色散人
藏色散人앞으로
2021-09-12 16:32:484022검색
사용자 입력 데이터를 필터링할 때 일반적으로 자신만의 방법을 작성하여 판단합니다.
예를 들어 이메일을 확인할 때 정규식을 사용하세요
$pattern = "/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/";
if (!preg_match($pattern, $email)) {
        throw new \Exception(self::ERROR_PARAMETER_EMPTY . '_邮件格式有误:' . $email);
}

정규식을 사용하지 않는 경우에는 다른 간단한 방법은 없나요?

필터 관련 함수를 사용하세요

filter_has_var(type,variable) 지정된 유형의 변수가 있는지 여부.
filter_input은 스크립트 외부에서 입력을 받아 필터링합니다.
filter_input_array는 스크립트 외부에서 여러 입력을 가져와 필터링합니다.
filter_var는 변수를 가져와서 필터링합니다.
filter_var_array는 여러 변수를 가져와서 필터링합니다.

filter_has_var

$_GET 결과에 name

if(!filter_has_var(INPUT_GET, "name"))
{
    echo("name 不存在");
}
else
{
    echo("name 存在");
}

filter_input

이메일 확인 예시 보기

if (!filter_input(INPUT_GET, 'email', FILTER_VALIDATE_EMAIL))
{
    echo "E-Mail is not valid";
}
else
{
    echo "E-Mail is valid";
}

filter_input_array

전체 입력 소스 필터링

$filters = array
(
    "name" => array
    (
        "filter"=>FILTER_CALLBACK,
        "flags"=>FILTER_FORCE_ARRAY,
        "options"=>"ucwords"
    ),
    "age" => array
    (
        "filter"=>FILTER_VALIDATE_INT,
        "options"=>array
        (
            "min_range"=>1,
            "max_range"=>120
        )
    ),
    "email"=> FILTER_VALIDATE_EMAIL,
);
print_r(filter_input_array(INPUT_POST, $filters));

filter_var, filter_var_array

입력 소스가 필요하지 않습니다. , 값을 직접 필터링

if(!filter_var("someone@example....com", FILTER_VALIDATE_EMAIL))
 {
 echo("E-mail is not valid");
 }
else
 {
 echo("E-mail is valid");
 }

입력 소스 범위

검증

기타 필터링 방법

strip_tags html 태그 제거
htmlentities 문자를 HTML 엔터티로 변환, (통화도 변환함) 탈출 유로, 파운드 등과 같은 기호, 저작권 기호 등)
htmlspecialchars 함수는 미리 정의된 문자를 HTML 엔터티로 변환합니다.
미리 정의된 문자는 다음과 같습니다.
&(앰퍼샌드)는 &
"(큰따옴표)는 "
'(작은따옴표)는 '
<(보다 작음)은 <
(보다 큼)이 됩니다.

* 팁: 특수 HTML 엔터티를 다시 문자로 변환해야 하는 경우 htmlspecialcharsdecode() 함수를 사용하세요.


$input = "我是标题";
echo htmlspecialchars($input) . "\n";
echo htmlentities($input) . "\n";
echo strip_tags($input) . "\n";

$input = "-- 'select * from ";
echo addslashes($input) . "\n";

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP 데이터 필터링에 대해 자세히 설명하는 기사의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제