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

藏色散人
풀어 주다: 2023-04-10 16:46:02
앞으로
3915명이 탐색했습니다.
사용자 입력 데이터를 필터링할 때 일반적으로 자신만의 방법을 작성하여 판단합니다.
예를 들어 이메일을 확인할 때 정규식을 사용하세요
$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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿