根据表达式和列表过滤值

时间:2009-10-07 01:08:30

标签: php

我正在为IMified网络编写机器人。

我想通过仅在我的脚本中接受某些值来过滤我的机器人处理的项目。

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

$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;
    }
}
  1. 有没有办法做得更好?
  2. 为什么我的正则表达式不起作用 - 它只是允许名为value1234或类似名称(“值”+数字)的键,但它不会让任何东西通过。

2 个答案:

答案 0 :(得分:2)

  1. 总有一种更好的方法,但是 - 只要你在代码中加入一些污点/健全性检查,你就可以了。

  2. 您的正则表达式语法错误。尝试: preg_match('/^value\d+$/', $key)

答案 1 :(得分:1)

我认为它应该是preg_match('/ value \ d * /',$ key)

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