/** * 推測ユーザデータの出力 */ public function set($data = '', $keeptimestamp = false) { // ユーザを推測する $user = parent::guess_user($data['user'], $data['ntlm'], $data['sig']); if (empty($user)) { return; } if ($this->has()) { // ログが存在する場合前のデーターを読み込んで重複を確認 $sw = FALSE; foreach ($this->get() as $_src) { $x = trim($_src); $field = parent::table2array($x); // PukiWiki 表形式データを配列データに変換 if (count($field) == 0) { continue; } if ($field[0] != $data['ua']) { continue; } if ($field[1] != $data['host']) { continue; } if ($field[2] != $user) { continue; } $sw = TRUE; break; } if ($sw) { return; } // 重複 } // 追記するデーター $data = parent::array2table(array($data['ua'], $data['host'], $user, '')); return parent::set($data); }
/** * 署名を抽出 */ public function getSigunature() { $sum = array(); $lines = parent::get(); $name = parent::get_log_field(); if (!$lines) { return; } foreach ($lines as $_data) { foreach ($_data as $line) { $field = parent::line2field($line, $name); if (empty($field['ua'])) { continue; } $user = parent::guess_user($field['user'], $field['ntlm'], $field['sig']); if (empty($user)) { continue; } $sum[$field['ua']][$field['host']][$user] = ''; } } return $sum; }