လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> filter_input_array ကို filter_valka_int နှင့်အတူပေါင်းစပ်ထားသော filter_valka_int နှင့်ပေါင်းစပ်။ အတွက်အသေးစိတ်အဆင့်များကဘာတွေလဲ။

filter_input_array ကို filter_valka_int နှင့်အတူပေါင်းစပ်ထားသော filter_valka_int နှင့်ပေါင်းစပ်။ အတွက်အသေးစိတ်အဆင့်များကဘာတွေလဲ။

gitbox 2025-06-13

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


一, 什么是 filter_input_array 和 filter_valka_int?

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

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

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


二, 使用 filter_input_array 结合 filter_valka_int 的详细步骤

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

首先, 需要准备一个关联数组, 数组的键是输入变量名 (例如 get 或 post 参数名), 值是filter_valka_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_get , input_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>

这里$ input将是一个数组, 键对应输入变量名, 值为验证后的整数值, 若验证失败, 则对应值为မှားသော

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 请求参数အသက်အရွယ် , ID ရမှတ် , 其中ရမှတ်, 其中ရမှတ်要求是ရမှတ်要求是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_valka_int可以非常方便地批量验证整数输入, 代码简洁且易读options 参数还能实现范围限制, 配合 options参数还能实现范围限制, 建议在获取用户输入时尽量使用 php ။ 建议在获取用户输入时尽量使用 php ။