當前位置: 首頁> 最新文章列表> 使用filter_input_array 結合FILTER_VALIDATE_INT 進行整數輸入驗證的詳細步驟是什麼?

使用filter_input_array 結合FILTER_VALIDATE_INT 進行整數輸入驗證的詳細步驟是什麼?

gitbox 2025-06-13

在php開發過程中,獲取和驗證用戶輸入是一項非常重要的任務。特別是當我們需要驗證整數輸入時,使用php filter_input_array函數配合filter_validate_int過濾器,完成整數輸入的驗證。 ,完成整數輸入的驗證。


一、什麼是 filter_input_array和filter_validate_int?

  • filter_input_array :這是php中用於一次性過濾多個輸入變量的函數。它允許我們定義一個過濾規則數組,針對不同輸入項應用不同的過濾規則。

  • filter_validate_int :這是php中用於驗證輸入是否為有效整數的過濾器。如果輸入值是有效整數,則返回該整數,否則返回, false

結合這兩個功能,可以批量驗證多個整型輸入,代碼簡潔且易於維護。 ,代碼簡潔且易於維護。


二、使用 filter_input_array結合filter_validate_int的詳細步驟

1。定義需要驗證的輸入變量名及其過濾規則

首先,需要準備一個關聯數組,數組的鍵是輸入變量名(例如,數組的鍵是輸入變量名(例如

<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>

這裡$輸入將是一個數組,鍵對應輸入變量名,值為驗證後的整數值,若驗證失敗,則對應值為, false

3。判斷輸入是否合法

通過遍歷或直接判斷$輸入中各個元素,確定是否所有的輸入都通過了整數驗證。 ,確定是否所有的輸入都通過了整數驗證。

 <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_validate_int可以非常方便批量驗證整數輸入