我如何 运行 PHP Preg_match 针对所有 POST 数据?
How can i run PHP Preg_match against all POST Data?
我有一个 HTML 表单,用户可以在其中提交信息,这取决于用户在表单中选择的选项数量,发送的 POST 数据数量不同,有些是数组。
POST 数据与 VARDUMP 看起来像这样:
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" } }
我希望 运行 我的 preg_match 针对所有 POST 数据:
if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $data)) || (preg_match("/\s/", $data))
{
exit("Illegal characters found");
}
我怎样才能做到这一点?
您可以使用 array_walk_recursive
to iterate over the entire $_POST
array, testing each value with your preg_match
代码:
array_walk_recursive($_POST, function ($v) {
if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $v) || preg_match("/\s/", $v)) {
exit("Illegal characters found");
}
});
我有一个 HTML 表单,用户可以在其中提交信息,这取决于用户在表单中选择的选项数量,发送的 POST 数据数量不同,有些是数组。
POST 数据与 VARDUMP 看起来像这样:
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" } }
我希望 运行 我的 preg_match 针对所有 POST 数据:
if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $data)) || (preg_match("/\s/", $data))
{
exit("Illegal characters found");
}
我怎样才能做到这一点?
您可以使用 array_walk_recursive
to iterate over the entire $_POST
array, testing each value with your preg_match
代码:
array_walk_recursive($_POST, function ($v) {
if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $v) || preg_match("/\s/", $v)) {
exit("Illegal characters found");
}
});