_file->eof()) { if (preg_match('/^(?[0-9\/]+ [0-9:]+) \[.+?\] .+? .+? (?.+), client: .+?,(.+)request: "(?.+)", host: "(?.+?)"(, referrer: "(?.+)")?/', $this->_file->fgets(), $matches)) { $item = new LogReader_Item_Nginx(); $timestamp = date('Y-m-d H:i:s', strtotime($matches['date'])); $item->setTimestamp($timestamp); $message = $matches['message']; $type = $this->_getType($message); $item->setType($type); $item->setMessage($message); $item->setRequest($matches['request']); $item->setHost($matches['host']); if (isset($matches['referrer'])) { $item->setReferrer($matches['referrer']); } if ($this->_storage) { $this->_storage->save($item); } } } } protected function _getType($message) { if (preg_match('/^([a-zA-Z0-9 ()]+) "/', $message, $matches) && isset($matches[1])) { return trim($matches[1]); } } }