我有一个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");
}
我该如何实现?
您可以使用array_walk_recursive
遍历整个array_walk_recursive
数组,并使用您的$_POST
代码测试每个值:
preg_match