从$ this-> request->数据中提取正则表达式并存储在DB cakephp中

时间:2015-11-03 19:31:11

标签: php regex cakephp

我正在使用CakeHelper和cakephp 2.0。我想在保存到数据库之前从输入字段中提取一个21位数字,并且只将该数字存储在我的数据库中。

我目前的代码是:

if (!empty ( $this->request->data ) && ($this->request->is('post')))
{
    preg_match("/[0-9]{21}/", $this->request->data, $field_id);
    $this->InsightId->save($field_id[0]);
}

永远不会评估if语句,它永远不会进入preg_match。我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

我的解决方案与Regex完全不同。我使用php爆炸' /'作为我的分隔符。我的代码现在看起来像这样:

if (!empty ( $this->request->data ) && ($this->request->is('post')))
   {
        $field_ids = explode('/', $this->request->data['InsightId']['field']);

        foreach($field_ids as $field_id)
        {
            if(strlen($field_id) === 21)
            {
                $this->request->data['InsightId']['field'] = $field_id;
                $this->InsightId->save($this->request->data);
            }
        }
   }