批改状态:合格
老师批语:很好!过滤器是应用程序安全课题之一,可以保证用户输入的数据都是合法的!
<?php// 全局作用域$name ='peter';// 全局变量自动成为超全局数组$GLOBALS中的元素echo print_r($GLOBALS,true).'<br>';echo $GLOBALS['name'];echo '<hr>';// 函数作用域function boss(){// 私有变量$myfriend ='lindy';return $myfriend;// 在函数中不能直接访问全局变量,要用global声明或者用超全局变量$GLOBALS来访问// global声明global $name;return $name;// 超全局变量$GLOBALS访问return $GLOBALS['name'];}echo boss();
<?php// 常量 由const,define定义,要初始化,不能删除,不受作用域限制const MY_NAME = 'evan';define('MY_AGE',22);// 自定义常量是系统常量数组中的一个元素print_r(get_defined_constants(true)['user']);// 类中的常量只允许用const定义,用define()会报错class People{const NAME = 'evan';}echo '<br>';// 如果常量名放在一个变量中,用constent()输出常量的值$name = 'MY_NAME';echo constant($name);echo '<br>';// null也可以用作常量名,但要用constant()获取值define('','male');echo constant('');
<?php// 预定义常量:echo '版本号: ' . PHP_VERSION . '<br>';echo '操作系统: ' . PHP_OS_FAMILY . '<br>';echo '最大整数: ' . PHP_INT_MAX . '<br>';echo '最大浮点数: ' . PHP_FLOAT_MAX . '<br>';echo '目录分隔符: ' . DIRECTORY_SEPARATOR . '<hr>';// 魔术常量:值随系统变化而变化,无法自定义echo '当前文件完整路径: ' . __FILE__ . '<br>';echo '当前文件所在目录: ' . __DIR__ . '<br>';echo '当前行号: ' . __LINE__ . '<br>';echo '当函数名: ' . __FUNCTION__ . '<br>';echo '当前类名: ' . __CLASS__ . '<br>';echo '当前trait名: ' . __TRAIT__ . '<br>';echo '当前类方法名: ' . __METHOD__ . '<br>';echo '当前命名空间: ' . __NAMESPACE__ . '<br>'
PHP过滤器作用:验证和过滤来自于非安全来源的外部数据。
<?php// 查看当前php版本支持的过滤器foreach(filter_list() as $filter){echo $filter. '=>' .filter_id($filter).'<br>';}// 1.单个变量过滤:filter_var(变量名,过滤器常量)$age = 22;var_dump(filter_var($age,FILTER_VALIDATE_INT));// 2.多个变量过滤:filter_var_array()$name = 'evan';$age = 22;$sex ='男';// 将变量放到一个数组中$people = ['name'=>'evan', 'age'=>22, 'sex'=>'男'];var_dump(filter_var_array($people,FILTER_VALIDATE_INT));echo '<br>';var_dump(filter_var_array($people,513));// 3.外部变量过滤:filter_input(输入类型,变量名,过滤器,可选参数)echo '标题:' . $_GET['title'];// 范围用'options'=>['min_range'=>22, 'max_range'=>55]表示$data = ['options' =>['min_range'=>2000, 'max_range'=>10000]];var_dump(filter_input(INPUT_GET,'cost',FILTER_VALIDATE_INT,$data));// 4.验证多个外部变量:filter_input_array()$data =['name'=>FILTER_SANITIZE_STRING,'cost'=>FILTER_VALIDATE_INT,'exp'=>['filter'=>FILTER_VALIDATE_INT, 'optins'=>['min_range'=>2,'max_range'=>10]],'web'=>FILTER_VALIDATE_URL];var_dump(filter_input_array(INPUT_GET,$data));
| 序号 | 函数 | 描述 |
|---|---|---|
| 1 | filter_list() | |
| 2 | filter_id() | |
| 3 | filter_var() | 过滤单个变量 |
| 4 | filter_var_array() | 过滤多个变量 |
| 5 | filter_has_var() | 检测是否存在某个外部变量 |
| 6 | filter_input() | 过滤单个外部变量 |
| 7 | filter_input_array() | 过滤多个外部变量 |
| 序号 | 函数 | 描述 |
|---|---|---|
| 1 | FILTER_VALIDATE_INT | 验证整数 |
| 2 | FILTER_VALIDATE_FLOAT | 浮点点验证 |
| 3 | FILTER_VALIDATE_BOOLEAN | 验证布尔项 |
| 4 | FILTER_VALIDATE_EMAIL | 验证邮箱 |
| 5 | FILTER_VALIDATE_URL | 验证 URL 地址 |
| 6 | FILTER_VALIDATE_IP | 验证 IP 地址 |
| 7 | FILTER_VALIDATE_REGEXP | 正则验证 |
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号