我如何针对所有POST数据运行PHP Preg_match?

问题描述 投票:0回答:1

我有一个HTML表单,用户可以在该表单中提交信息,这取决于用户在表单中选择了多少选项,而发送的POST数据的数量则不同,其中一些作为数组。

带有VARDUMP的POST数据看起来像这样:

array(8) { ["animal"]=> string(7) "test123" ["name"]=> string(5) "test" ["goat"]=> string(7) "farm" ["animal2"]=> string(8) "animal2" ["option"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "1" } ["number"]=> array(2) { [0]=> string(1) "s" [1]=> string(1) "3" } ["option4"]=> array(1) { [0]=> string(1) "1" } ["grass"]=> array(1) { [0]=> string(1) "3" } }

我希望对所有POST数据运行我的preg_match:

if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $data)) || (preg_match("/\\s/", $data))
{
    exit("Illegal characters found");
}

我该如何实现?

php preg-match postdata
1个回答
1
投票

您可以使用array_walk_recursive遍历整个array_walk_recursive数组,并使用您的$_POST代码测试每个值:

preg_match
© www.soinside.com 2019 - 2024. All rights reserved.