이전 기사에서는 PHP의 $_GET 변수와 $_POST 변수에 대한 자세한 지식을 제공한 "PHP 양식 학습: $_GET 및 $_POST 변수의 사용 및 차이점"을 가져왔습니다. 모두에게 도움이 되기를 바라면서 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("是个合法的整数"); } ?>
输出结果:
上述示例便是通过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("是个合法的整数"); } ?>
输出结果:
在上述示例中,需要注意的是:就像上面的代码一样,选项必须放入一个名为 "options" 的相关数组中。如果使用标志,则不需在数组内。由于整数是 "300",它不在指定的范围内,所以输出结果如上。
验证输入
接下来让我们试着验证来自表单的输入。我们需要做的第一件事情是确认是否存在我们正在查找的输入数据。然后我们用 filter_input()
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"; } } ?>
<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; } ?>
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; } ?>
输出结果:
其中我们需要注意的是:
FILTER_SANITIZE_URL 过滤器删除字符串中所有非法的 URL 字符。上面的实例有一个通过 "GET" 方法传送的输入变量 (url):检测是否存在 "GET" 类型的 "url" 输入变量,如果存在此输入变量,对其进行净化(删除非法字符),并将其存储在 $url 变量中。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
위 내용은 3분 안에 PHP 필터를 안내합니다(자세한 예).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!