Aktueller Standort: Startseite> Neueste Artikel> Was sind die detaillierten Schritte für die Verwendung filter_input_array kombiniert mit filter_validate_int für die Integer -Eingabeüberprüfung?

Was sind die detaillierten Schritte für die Verwendung filter_input_array kombiniert mit filter_validate_int für die Integer -Eingabeüberprüfung?

gitbox 2025-06-13

在 php 开发过程中 , 获取和验证用户输入是一项非常重要的任务。特别是当我们需要验证整数输入时 , 使用 php 内置的过滤函数不仅简洁且高效。本文将详细介绍如何使用filter_input_array函数配合filter_valate_int过滤器 , 完成整数输入的验证。 完成整数输入的验证。 完成整数输入的验证。


一、什么是 filter_input_array 和 filter_validate_int?

  • filter_input_array : 这是 php 中用于一次性过滤多个输入变量的函数。它允许我们定义一个过滤规则数组 , 针对不同输入项应用不同的过滤规则。

  • Filter_validate_int : 这是 php 中用于验证输入是否为有效整数的过滤器。如果输入值是有效整数 , 则返回该整数 , 否则返回false

结合这两个功能 , 可以批量验证多个整型输入 , 代码简洁且易于维护。 代码简洁且易于维护。


二、使用 filter_input_array 结合 filter_validate_int 的详细步骤

1. 定义需要验证的输入变量名及其过滤规则

首先 , 需要准备一个关联数组 , 数组的键是输入变量名(例如 数组的键是输入变量名(例如 post 参数名) , 值是 filter_validate_int , 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 , , 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。 代表对该输入项应用整数验证。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$filters</span></span><span> = [
    </span><span><span class="hljs-string">'age'</span></span><span> =&gt; FILTER_VALIDATE_INT,
    </span><span><span class="hljs-string">'id'</span></span><span>  =&gt; FILTER_VALIDATE_INT,
    </span><span><span class="hljs-string">'score'</span></span><span> =&gt; [
        </span><span><span class="hljs-string">'filter'</span></span><span> =&gt; FILTER_VALIDATE_INT,
        </span><span><span class="hljs-string">'options'</span></span><span> =&gt; [
            </span><span><span class="hljs-string">'min_range'</span></span><span> =&gt; </span><span><span class="hljs-number">0</span></span><span>,    </span><span><span class="hljs-comment">// &#35774;&#32622;&#26368;&#23567;&#20540;&#38480;&#21046;&#65288;&#21487;&#36873;&#65289;</span></span><span>
            </span><span><span class="hljs-string">'max_range'</span></span><span> =&gt; </span><span><span class="hljs-number">100</span></span><span>,  </span><span><span class="hljs-comment">// &#35774;&#32622;&#26368;&#22823;&#20540;&#38480;&#21046;&#65288;&#21487;&#36873;&#65289;</span></span><span>
        ]
    ]
];
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

2. 调用 filter_input_array 函数获取过滤结果

使用filter_input_array函数 , 传入输入类型(如input_getinput_post ) , 以及上面定义的过滤规则数组。 以及上面定义的过滤规则数组。 以及上面定义的过滤规则数组。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = </span><span><span class="hljs-title function_ invoke__">filter_input_array</span></span><span>(INPUT_GET, </span><span><span class="hljs-variable">$filters</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

这里$ Eingabe将是一个数组 , 键对应输入变量名 , 值为验证后的整数值 , 若验证失败 , 则对应值为falsch

3. 判断输入是否合法

通过遍历或直接判断$ Input中各个元素 , 确定是否所有的输入都通过了整数验证。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$input</span></span><span> !== </span><span><span class="hljs-literal">null</span></span><span> &amp;&amp; </span><span><span class="hljs-variable">$input</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$input</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> =&gt; </span><span><span class="hljs-variable">$value</span></span><span>) {
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$value</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&#21442;&#25968; <span class="hljs-subst">{$key}</span></span></span><span> &#38750;&#27861;&#65292;&#24517;&#39035;&#26159;&#25972;&#25968;&#12290;&lt;br&gt;";
        } </span><span><span class="hljs-keyword">else</span></span><span> {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&#21442;&#25968; <span class="hljs-subst">{$key}</span></span></span><span> &#39564;&#35777;&#36890;&#36807;&#65292;&#20540;&#20026;&#65306;</span><span><span class="hljs-subst">{$value}</span></span><span>&lt;br&gt;";
        }
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&#27809;&#26377;&#33719;&#21462;&#21040;&#36755;&#20837;&#25110;&#36755;&#20837;&#26684;&#24335;&#38169;&#35823;&#12290;"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4. 结合实际使用的完整示例

假设页面接收 Get 请求参数AlteridPunktzahl , 其中Punktzahl要求是 0 到 100 之间的整数 , : :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// &#36807;&#28388;&#35268;&#21017;&#25968;&#32452;</span></span><span>
</span><span><span class="hljs-variable">$filters</span></span><span> = [
    </span><span><span class="hljs-string">'age'</span></span><span> =&gt; FILTER_VALIDATE_INT,
    </span><span><span class="hljs-string">'id'</span></span><span>  =&gt; FILTER_VALIDATE_INT,
    </span><span><span class="hljs-string">'score'</span></span><span> =&gt; [
        </span><span><span class="hljs-string">'filter'</span></span><span> =&gt; FILTER_VALIDATE_INT,
        </span><span><span class="hljs-string">'options'</span></span><span> =&gt; [</span><span><span class="hljs-string">'min_range'</span></span><span> =&gt; </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-string">'max_range'</span></span><span> =&gt; </span><span><span class="hljs-number">100</span></span><span>]
    ]
];

</span><span><span class="hljs-comment">// &#33719;&#21462;&#24182;&#39564;&#35777;&#36755;&#20837;</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = </span><span><span class="hljs-title function_ invoke__">filter_input_array</span></span><span>(INPUT_GET, </span><span><span class="hljs-variable">$filters</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$input</span></span><span> !== </span><span><span class="hljs-literal">null</span></span><span> &amp;&amp; </span><span><span class="hljs-variable">$input</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$input</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> =&gt; </span><span><span class="hljs-variable">$value</span></span><span>) {
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$value</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&#21442;&#25968; <span class="hljs-subst">{$key}</span></span></span><span> &#38750;&#27861;&#65292;&#24517;&#39035;&#26159;&#25351;&#23450;&#33539;&#22260;&#20869;&#30340;&#25972;&#25968;&#12290;&lt;br&gt;";
        } </span><span><span class="hljs-keyword">else</span></span><span> {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&#21442;&#25968; <span class="hljs-subst">{$key}</span></span></span><span> &#39564;&#35777;&#36890;&#36807;&#65292;&#20540;&#20026;&#65306;</span><span><span class="hljs-subst">{$value}</span></span><span>&lt;br&gt;";
        }
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&#26410;&#25509;&#25910;&#21040;&#26377;&#25928;&#36755;&#20837;&#12290;"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

三、总结

使用filter_input_array结合filter_validate_int可以非常方便地批量验证整数输入 , 代码简洁且易读。配合Optionen参数还能实现范围限制 , 满足多种场景需求。建议在获取用户输入时尽量使用 php 自带的过滤器 , 以提升代码的安全性和稳定性。 以提升代码的安全性和稳定性。 以提升代码的安全性和稳定性。