php - 检查php中的输入以获取数组值
问题描述
我在 POST 和 GET 中检查 php 中的所有输入,并且在我的应用程序中的任何其他内容之前将它们转换为 html 实体。
问题是,当我有多个同名输入时(例如多个复选框)。我的输入检查器将数组归零。
我想检查 POST 和 GET 数组,并且我想检查它们中所有同名的多个输入(即数组)。
任何人都可以向我建议一段代码吗?
// Input validation
$_GET = array_map("input_check",$_GET);
$_POST = array_map("input_check",$_POST);
// Check input strings
function input_check($arr)
{
return htmlentities($arr,ENT_QUOTES,'UTF-8');
}
解决方案
递归!欢迎来到递归的世界!
array_map()
将导致您丢失密钥,因此让该功能处理所有事情。
您将需要检查并考虑数组:
// Input validation
$_GET = input_check($_GET);
$_POST = input_check($_POST);
// Check input strings
function input_check($arr)
{
if(is_array($arr))
{
// Since this value is an array we need to apply this
// function to each element inside the array and maintain
// the original keys
foreach($arr as $k=>$v)
{
$arr[$k] = input_check($v);
}
}
elseif(is_string($arr))
{
$arr = htmlentities($arr,ENT_QUOTES,'UTF-8');
}
return $arr;
}
推荐阅读
- r - 使用 mutate_all 将所有列除以所选列
- javascript - 如何确定是从统一接口 (UCI) 还是旧版 Web 客户端调用 Dynamics XRM javascript?
- r - R:用 /r/n 编辑字符串向量到 data.frame
- javascript - 用于验证信用卡报表的报表描述符的正则表达式
- python - 一次将数据加载到占位符,然后运行多个计算
- ios - 如何关闭当前视图控制器后面的视图控制器?
- java - 如何在方法内使用没有 @Query 注释的 JPQL?
- python - 烧瓶应用程序:尝试对字典进行 jsonify
- git - Git 最新提交被先前的提交更改替换
- xml - 避免 XSL 模板中的重复