log(new Log($project)); $data = $doc->get(); foreach ($data as $k => $v) { print_r($data);die; $this->data[$k] = $this->load($doc, $v, $col); } $doc->saveLog(); } public function get() { return $this->data; } private function load($doc, $data, $col) { foreach ($data as $v) { $callback = false; if (strpos($v['key'], '.') !== false) { $temp = explode('.', $v['key']); $v['key'] = $temp[1]; $callback = $temp[0]; } $value = $doc->rule($data, $col, $v); if ($value == 'error') { break; } if ($callback) { $value = Dever::{$callback}($value); } $data[$v['key']] = $value; } if (Dever::input('test') == 1) { $doc->outLog(); print_r($data);die; } $this->update($data, $project); return $data; } private function update($data, $project) { $param['option_project_id'] = $project; $param['option_value'] = json_encode($data); $info = Dever::db('spider/data')->one($param); if ($info) { $update = array(); foreach ($param as $i => $j) { $i = str_replace('option_', 'set_', $i); $update[$i] = $j; } $id = $update['where_id'] = $info['id']; Dever::db('spider/data')->update($update); } else { $update = array(); foreach ($param as $i => $j) { $i = str_replace('option_', 'add_', $i); $update[$i] = $j; } $id = Dever::db('spider/data')->insert($update); } } }