Php 根据表达式和列表筛选值

Php 根据表达式和列表筛选值,php,Php,我正在为虚拟化网络编写一个机器人程序 我想通过只接受脚本中的某些值来过滤bot处理的项目 这就是我现在正在使用的: $items = array('botkey', 'userkey', 'network', 'user', 'channel', 'msg', 'step'); foreach ($_POST as $key => $value) { if (in_array($key, $items) || preg_match('value\d*', $key)) {

我正在为虚拟化网络编写一个机器人程序

我想通过只接受脚本中的某些值来过滤bot处理的项目

这就是我现在正在使用的:

$items = array('botkey', 'userkey', 'network', 'user', 'channel', 'msg', 'step');

foreach ($_POST as $key => $value)
{
    if (in_array($key, $items) || preg_match('value\d*', $key))
    {
        $this->data[$key] = $value;
    }
}
  • 有没有更好的办法
  • 为什么我的正则表达式不能工作?它只允许名为
    value1234
    或任何类似(“value”+number)的键,但它不允许任何东西通过

  • 我认为应该是preg_match(“/value\d*/”,$key)

    我认为这是解决给定问题的一个很好的方法

  • 总有更好的方法,但是——只要您在代码中对值进行一些污点/健全性检查,您就做得很好

  • 您的正则表达式语法错误。尝试:
    preg\u匹配(“/^value\d+$/”,$key)