繁体   English   中英

在同一数组上使用filter_input_array和array_filter

[英]use of filter_input_array and array_filter on the same array

我的表单中有一组相同的输入字段,其中一些字段可以为空。

<input type="text" class="form-control" name="option[]" placeholder="fill in" />
<input type="text" class="form-control" name="option[]" placeholder="optional" />
<input type="text" class="form-control" name="option[]" placeholder="optional" />

这些输入字段的值进入数组$_POST["option"]

我想过滤$_POST["option"] ,为此,我正在使用以下代码:

$filter = array("option" => array("filter"=>FILTER_CALLBACK,"flags"=>FILTER_FORCE_ARRAY,"options"=>"ucwords"));
$optionfin = filter_input_array(INPUT_POST, $filter);

但是现在我还想使用array_filter函数删除空字段,因此我只能将已填写的字段输入到数据库中,但这似乎不起作用。

$option = array_filter($optionfin);

当我执行以下操作时:

$optionfin = array_filter($_POST["option"]);

这工作正常,但我知道您最好不要$_POST这种方式访问$_POST因为它不是那么安全...

谁能帮我指出我要去哪里错了?

谢谢

因为您使用的是filter_input_array ,所以实际上最终会得到一个与$_POST对应的关联数组。 因此,要在尝试执行操作时过滤掉空白字段,您将需要指定option键:

$option = array_filter($optionfin['option']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM