X-Git-Url: http://git.sourceforge.jp/view?p=hengband%2Fweb.git;a=blobdiff_plain;f=dump_file.inc;h=e0a85f8c61989ddff407b33442fec61c4d024f89;hp=9ab738086a852fd2f9795318bf9ddcc56921ad38;hb=cad7b585c34bce34621affec52efd48d2c56e001;hpb=1189313e8aed65af4f95fde82b54c439d7c957af diff --git a/dump_file.inc b/dump_file.inc index 9ab7380..e0a85f8 100644 --- a/dump_file.inc +++ b/dump_file.inc @@ -76,11 +76,45 @@ class DumpFile } + /** + * キャラクタダンプの死ぬ直前のメッセージもしくは勝利メッセージを取得する + * + * @return array 死ぬ直前のメッセージもしくは勝利メッセージを1行1要素にした文字列の配列 + */ + public function get_last_message() + { + $zp = gzopen($this->get_filename('dumps', 'txt'), 'r'); + if ($zp === FALSE) return []; + + $in_message = FALSE; + $result = []; + while (!gzeof($zp)) { + $line = gzgets($zp); + + if (preg_match('/^\s*\[(.*)\]\s*$/u', $line, $matches)) { + if ($matches[1] == '*勝利*メッセージ' || + $matches[1] == '死ぬ直前のメッセージ') { + $in_message = TRUE; + } + else if ($in_message) { + break; + } + } + + if ($in_message) { + $result[] = rtrim($line, "\n"); + } + } + + return $result; + } + private static function browser_accept_encodings() { - if (!isset($_SERVER["HTTP_ACCEPT_ENCODING"])) return []; + $accept_encoding = filter_input(INPUT_SERVER, 'HTTP_ACCEPT_ENCODING'); + if ($accept_encoding == NULL) return []; - return array_map('trim', explode(",", $_SERVER["HTTP_ACCEPT_ENCODING"])); + return array_map('trim', explode(",", $accept_encoding)); }