> 백엔드 개발 > PHP 문제 > 3분 안에 PHP 필터를 안내합니다(자세한 예).

3분 안에 PHP 필터를 안내합니다(자세한 예).

WBOY
풀어 주다: 2023-03-13 15:28:02
원래의
2653명이 탐색했습니다.

이전 기사에서는 PHP의 $_GET 변수와 $_POST 변수에 대한 자세한 지식을 제공한 "PHP 양식 학습: $_GET 및 $_POST 변수의 사용 및 차이점"을 가져왔습니다. 모두에게 도움이 되기를 바라면서 PHP의 필터 관련 지식을 살펴보겠습니다!

3분 안에 PHP 필터를 안내합니다(자세한 예).

이전 글에서는 $_GET 변수와 $_POST 변수에 대해 알아보았습니다. 이 글에서는 PHP 필터에 대해 언급했습니다. 이 문서에서 설명하는 데이터는 사용자 입력과 같은 비보안 소스의 데이터를 확인하고 필터링하는 데 사용됩니다. 그럼 PHP에서 필터 관련 지식을 살펴보도록 하겠습니다. $_GET 变量与$_POST 变量的相关知识,其中有提到关于安全性的问题,本篇文章中所要讲到的PHP过滤器就是用于验证和过滤来自非安全来源的数据,比如用户的输入。那接下来我们就来看一下PHP中的过滤器的相关知识,一起看看吧。

PHP过滤器

什么是过滤器,可以先把过滤器简单的理解为过滤掉不安全的数据。那我们为什么要使用过了不起呢?在我们的日常开发中几乎所有的Web应用程序都会依赖外部的输入,这些数据通常都是来自类似Web服务的其他应用程序或者来自用户。我们通过过滤器的使用能够确保应用程序能够获得正确的输入类型。

我们应该对像来自表单的输入数据、Cookies、服务器变量和数据库查询结果等这样的外部数据进行过滤,对输入进行过滤是很重要的,因此我们需要使用过滤器。

PHP过滤器是用于验证和过滤来自非安全来源的数据,是测试、验证和过滤用户输入或者自定义数据时任何Web应用程序的重要组成部分,它的设计目的就是为了是数据处理更轻松快捷。

函数和过滤器

当我们需要过滤变量的时候,可以使用很多过滤函数:filter_var() 通过一个指定的过滤器来过滤单一的变量;filter_var_array() 通过相同的或不同的过滤器来过滤多个变量;filter_input获取一个输入变量,并对它进行过滤;filter_input_array获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤。

接下来我们通过一个示例来看一下通过filter_var() 函数验证了一个整数,示例如下:

<?php
header("Content-type:text/html;charset=utf-8");
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
    echo("不是一个合法的整数");
}
else
{
    echo("是个合法的整数");
}
?>
로그인 후 복사

输出结果:

3분 안에 PHP 필터를 안내합니다(자세한 예).

上述示例便是通过filter_var() 过滤函数来验证了一个整数,接下来看一下我们常用的两种过滤器。

  • <strong>Validating</strong> 过滤器:用于验证用户输入,有着严格的格式规则(比如 URL 或 E-Mail 验证),如果成功则返回预期的类型,如果失败则返回 FALSE。

  • <strong>Sanitizing</strong> 过滤器:用于允许或禁止字符串中指定的字符,无数据格式规则,始终返回字符串。

选项和标志

选项和标志用于向指定的过滤器添加额外的过滤选项。不同的过滤器有不同的选项和标志。

接下来我们通过示例来看一下用 filter_var() "min_range" 以及 "max_range" 选项验证了一个整数,示例如下:

<?php
header("Content-type:text/html;charset=utf-8");
$var=300;
$int_options = array(
    "options"=>array
    (
        "min_range"=>0,   //最小值
        "max_range"=>256  //最大值
    )
);
if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
    echo("不是一个合法的整数");
}
else
{
    echo("是个合法的整数");
}
?>
로그인 후 복사

输出结果:

3분 안에 PHP 필터를 안내합니다(자세한 예).

在上述示例中,需要注意的是:就像上面的代码一样,选项必须放入一个名为 "options" 的相关数组中。如果使用标志,则不需在数组内。由于整数是 "300",它不在指定的范围内,所以输出结果如上。

验证输入

接下来让我们试着验证来自表单的输入。我们需要做的第一件事情是确认是否存在我们正在查找的输入数据。然后我们用 filter_input()

PHP 필터

필터란 무엇입니까, 먼저 필터를 사용할 수 있습니다. 단순히 안전하지 않은 데이터를 필터링하는 것으로 이해됩니다. 그렇다면 왜 Weiwei를 사용합니까? 일상적인 개발에서 거의 모든 웹 애플리케이션은 외부 입력에 의존합니다. 이러한 데이터는 일반적으로 웹 서비스와 같은 다른 애플리케이션이나 사용자로부터 제공됩니다. 필터를 사용하면 애플리케이션이 올바른 입력 유형을 얻도록 할 수 있습니다.

폼, 쿠키, 서버 변수, 데이터베이스 쿼리 결과 등의 입력 데이터와 같은 외부 데이터를 필터링해야 합니다. 입력을 필터링하는 것이 중요하므로 필터를 사용해야 합니다.

3분 안에 PHP 필터를 안내합니다(자세한 예).PHP 필터는 안전하지 않은 소스의 데이터를 검증하고 필터링하는 데 사용됩니다. 이는 사용자 입력 또는 사용자 정의 데이터를 테스트, 검증 및 필터링할 때 데이터 처리를 보다 쉽고 효율적으로 만들기 위해 설계되었습니다. 빠른.

함수 및 필터

🎜변수를 필터링해야 할 때 다양한 필터 함수를 사용할 수 있습니다. < code>filter_var() 지정된 필터를 통해 단일 변수를 필터링합니다. filter_var_array() 동일하거나 다른 필터를 통해 여러 변수를 필터링합니다. filter_input 입력 변수를 가져옵니다. filter_input_array여러 입력 변수를 가져와 동일하거나 다른 필터를 통해 필터링합니다. 🎜🎜다음으로 filter_var() 함수를 통해 정수를 검증하는 예를 들어보겠습니다. 🎜
<?php
header("Content-type:text/html;charset=utf-8");
if(!filter_has_var(INPUT_GET, "email"))
{
    echo("没有 email 参数");
}
else
{
    if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
    {
        echo "不是一个合法的 E-Mail";
    }
    else
    {
        echo "是一个合法的 E-Mail";
    }
}
?>
로그인 후 복사
🎜출력 결과:
🎜🎜3분 안에 PHP 필터를 안내합니다(자세한 예).🎜🎜위의 예는 filter_var()를 통한 것입니다. 필터 함수 정수를 검증해 보겠습니다. 다음으로 일반적으로 사용되는 두 가지 필터를 살펴보겠습니다. 🎜
  • 🎜<strong>검증 중</strong> 필터: 사용자 입력을 검증하는 데 사용됩니다. 엄격한 형식 규칙(예: URL 또는 이메일 확인)이 있으며, 성공하면 예상 유형을 반환하고, 실패하면 FALSE를 반환합니다. 🎜
  • 🎜<strong>위생</strong> 필터: 문자열에서 지정된 문자를 허용하거나 금지하는 데 사용되며 데이터 형식 규칙은 없으며 항상 문자열을 반환합니다. 🎜
🎜옵션 및 플래그
🎜🎜옵션과 플래그는 다음을 지정하는 데 사용됩니다. 필터는 추가 필터링 옵션을 추가합니다. 필터마다 옵션과 플래그가 다릅니다. 🎜🎜다음으로 filter_var() , "min_range" "max_range" 옵션을 사용하여 정수를 확인하는 예를 들어보겠습니다. 다음: 🎜
<?php
header("Content-type:text/html;charset=utf-8");
if(!filter_has_var(INPUT_GET, "url"))
{
    echo("没有 url 参数");
}
else
{
    $url = filter_input(INPUT_GET,
        "url", FILTER_SANITIZE_URL);
    echo $url;
}
?>
로그인 후 복사
로그인 후 복사
🎜출력 결과:
🎜🎜3분 안에 PHP 필터를 안내합니다(자세한 예).🎜🎜위의 예에서 위의 코드와 마찬가지로 옵션은 "options"라는 관련 배열에 넣어야 한다는 점에 유의하는 것이 중요합니다. 플래그를 사용하는 경우 배열에 있을 필요는 없습니다. 정수가 "300"이므로 지정된 범위에 속하지 않으므로 위와 같이 출력됩니다. 🎜🎜입력 유효성 검사
🎜🎜다음으로 양식의 입력 유효성을 검사해 보겠습니다. 가장 먼저 해야 할 일은 찾고 있는 입력 데이터가 존재하는지 확인하는 것입니다. 그런 다음 filter_input() 함수를 사용하여 입력 데이터를 필터링합니다. 🎜🎜다음으로 입력 변수 "email"이 GET을 사용하여 PHP 페이지에 전달되는 방법을 살펴보겠습니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜주의해야 할 사항 이다: 위의 예는 "GET" 메소드를 통해 전송된 입력변수(email)를 "GET" 타입의 "email" 입력변수가 있는지 확인하고, 입력변수가 있으면 해당 변수인지 확인한다. 유효한 이메일 주소. 🎜

净化输入

让我们试着清理一下从表单传来的 URL。首先,我们要确认是否存在我们正在查找的输入数据。然后,我们用 filter_input() 函数来净化输入数据。

下面我们通过示例来看一下输入变量 "url" 被传到 PHP 页面,示例如下:

<?php
header("Content-type:text/html;charset=utf-8");
if(!filter_has_var(INPUT_GET, "url"))
{
    echo("没有 url 参数");
}
else
{
    $url = filter_input(INPUT_GET,
        "url", FILTER_SANITIZE_URL);
    echo $url;
}
?>
로그인 후 복사
로그인 후 복사

输出结果:

3분 안에 PHP 필터를 안내합니다(자세한 예).

其中我们需要注意的是:

FILTER_SANITIZE_URL 过滤器删除字符串中所有非法的 URL 字符。上面的实例有一个通过 "GET" 方法传送的输入变量 (url):检测是否存在 "GET" 类型的 "url" 输入变量,如果存在此输入变量,对其进行净化(删除非法字符),并将其存储在 $url 变量中。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

위 내용은 3분 안에 PHP 필터를 안내합니다(자세한 예).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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