掲示板の汎用ログフォーマット規格を作ろう! at PHP
掲示板の汎用ログフォーマット規格を作ろう! - 暇つぶし2ch53:nobodyさん
06/01/15 11:55:49 4XZbfZj+
>>52
投稿時に色などを設定できる掲示板は多い。
必要性は感じないが。

54:nobodyさん
06/01/16 19:03:20
>>51
データに無駄が多いのは百も承知ですよ。
たとえ無駄が多くとも、得られるメリットのほうが大きいと判断したからそうしてるわけで。

>>52
YAML なんて仕様、初めて知った。おおまかなポリシーはだいたい理解した。
もしもデファクトスタンダードとして認められるぐらいの立場になれば採用するかもね。
それまでは、フォーマットの汎用性・再利用性を優先してXMLにしておくよ。

スタイルについては、仕様を決める段階のときに
そのまんま保存するか、IDなどを使って管理するか(RDBSで言う正規化みたいに)
かなり悩んだ。
もしも正規化した場合だと、記事を投稿した時点でユーザーが選んだスタイルが
後々になって変わってしまう懸念があって、
ユーザーの視点から見たらそれはやっぱ嫌だろうってことで
結局スタイルまるごと保存形式にしたわけです。

55:49
06/01/16 19:16:24 LXWSRImJ
おっと、>>49 = >>54 でした。

>>53
この掲示板は、もともとはB級Webサイト
(シロートが運営してて、身近な友達etcの間で細々と交流し合うほーむぺーじ)
での利用を想定してるんですよ。

で、そんなB級Webサイトのいち利用者である自分としては、
こういう掲示板では何らかの形で自分のアイデンティティーを主張したいわけで。

もちろん、知識の共有だけが目的の、技術系のコミュニティであれば
そんな必要は全くないです。

56:nobodyさん
06/01/21 04:18:59 pqXier51
RFC 1036

57:nobodyさん
06/01/21 20:56:34 GHGpAfBe
これでいいか?

用途:掲示板の基本情報
DTD名:bbs.dtd
XML名:bbs.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- bbs.dtd -->
<!ELEMENT bbs (code, url, name, abstract, mode) >
<!ATTLIST subjects version CDATA #FIXED "1.0">
<!ELEMENT code (#PCDATA) ><!-- 掲示板の英名 -->
<!ELEMENT url (#PCDATA) ><!-- 掲示板のルート(いわゆるindex.htmlのある階層) -->
<!ELEMENT name (#PCDATA) ><!-- 掲示板の名称(ひらがな・漢字も許可)
<!ELEMENT abstract (#PCDATA)<!-- 掲示板の概要 -->
<!ELEMENT rule (#PCDATA)<!-- 掲示板のルール -->
<!ELEMENT mode (#PCDATA)<!-- 掲示板の機能情報(将来の為の予約って事で) -->

サンプル:
<?xml version="1.0" encoding="UTF-8"?>
<!-- bbs.xml -->
<bbs version="1.0">
<code>samplebbs</code>
<url>URLリンク(localhost)
<name>サンプル掲示板</name>
<abstract>当該標準フォーマットに関連した話題だけを取り扱います。</abstract>
<rule>XMLやDTDに関する質問はよそでやって下さい。</rule>
</bbs>


58:nobodyさん
06/01/21 20:57:23 GHGpAfBe
用途:subject.txtの変わり
DTD名: subject.dtd
XML名: subject.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- subject.xml -->
<!ELEMENT subjects (thread) >
<!ATTLIST subjects version CDATA #FIXED "1.0">
<!ELEMENT thread (#PCDATA)<!-- スレッドのタイトル -->
<!ATTLIST thread key CDATA #REQUIRED><!-- 各スレッド固有のキー -->
<!ATTLIST thread file CDATA #REQUIRED><!-- 発言ログのファイル名(相対・絶対パスとも許可) -->
<!ATTLIST thread numberof CDATA #REQUIRED><!-- 発言数 -->
<!ATTLIST thread load CDATA><!-- 人気度なんかを表現する良識(でも予約ね)-->

サンプル:
<?xml version="1.0" encoding="UTF-8"?>
<!-- subjects.xml -->
<subjects version="1.0">
<thread key="1234567890" file="./dat/1234567890.xml" numberof="2">スレッド1番</thread>
<thread key="1234567891" file="./dat/1234567891.xml" numberof="12">スレッド2番</thread>
<thread key="1234567892" file="./dat/1234567892.xml" numberof="2">スレッド3番</thread>
<thread key="1234567893" file="./dat/1234567893.xml" numberof="46">スレッド4番</thread>
<thread key="1234567894" file="./dat/1234567894.xml" numberof="12">スレッド5番</thread>
<thread key="1234567895" file="./dat/1234567895.xml" numberof="7">スレッド6番</thread>
<thread key="1234567896" file="./dat/1234567896.xml" numberof="124">スレッド7番</thread>
<thread key="1234567897" file="./dat/1234567897.xml" numberof="2">スレッド8番</thread>
<thread key="1234567898" file="./dat/1234567898.xml" numberof="15">スレッド9番</thread>
<thread key="1234567899" file="./dat/1234567899.xml" numberof="12">スレッド10番</thread>
</subjects>

59:nobodyさん
06/01/21 20:58:30 GHGpAfBe
用途:xxxxxxx.log(発言ログ)の変わり
DTD名: thread.dtd
XML名: [スレッドのキー番号].xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- thread.dtd -->
<!ELEMENT thread (message) >
<!ELEMENT message (from, mail, date, body) >
<!ATTLIST message title CDATA #FIXED "1.0"><!-- スレッドのタイトル -->
<!ATTLIST message version CDATA #FIXED "1.0">
<!ELEMENT from (#PCDATA) ><!-- 名前 -->
<!ELEMENT mail (#PCDATA) ><!-- メールアドレス -->
<!ELEMENT date (#PCDATA) ><!-- 投稿時刻(UNIXタイムスタンプ) -->
<!ELEMENT body (#PCDATA) ><!-- 本文 -->

<!-- [スレッドのキー番号].xml -->
<thread version="1.0">
<message>
<from>名無しさん</from>
<mail>sage</mail>
<date>1137844462</date>
<body>発言ですわ</body>
</message>
<message>
<from>名無しさん</from>
<mail>sage</mail>
<date>1137844462</date>
<body>発言ですわ</body>
</message>
</thread>

60:nobodyさん
06/01/21 23:26:46
頭悪杉

61:nobodyさん
06/01/21 23:27:41 GHGpAfBe
具体性の無いレスだな

62:nobodyさん
06/01/26 21:22:40
無理にXMLにするくらいならカンマ区切りファイルで十分じゃん

63:nobodyさん
06/01/29 18:18:13
タブ区切りが好き。

64:nobodyさん
06/01/29 21:52:39 jiyafhD/
>>62-63
じゃあ、例えばカンマや\tを含むデータを保存したい場合はどうしますか?

65:nobodyさん
06/01/29 21:59:02
""で括ったり、適当な文字に変換したりお好きなように

66:nobodyさん
06/01/29 22:23:21
カンマならエンティティ化してタブならスペースにするなり消すなりするんじゃない

67:nobodyさん
06/01/30 01:59:23
タブは保存すらさせないかなぁ

68:nobodyさん
06/01/30 05:29:09
CSVもTSVも、データがシンプルなのはいいんだけど、
それぞれの値が何を意味するかの情報が存在しないから
掲示板の「汎用」ログフォーマットとしては不適なんだよね。

改善策としては、データの1行目にフィールド名を記述して
------------------------------------
name,title,date,color
test,test,2006-01-30T00:00,#000000
hoge,var,2006-01-30T01:00,#0000ff
------------------------------------
みたいにするとか。そのほうがまだマシかな。

69:nobodyさん
06/01/30 14:27:46
=まとめ=

ログ形式
name<>mail<>date<>msg<>subject 2ch形式
↓半互換形式(同じスクリプトでなんとなく読める)
name<>mail<>date<>msg<>subject(<>id<>pass<>stat<>color<>type・・・)
↓区切記号を変更(ちょい変えな読めん)
name,mail,date,msg,subject(,id,pass,stat,color,type・・・)

文字エンコード
S-JIS(2ch互換)

EUC-JP(半端?S-JISよかよさげでUTF-8と違って容量膨れない)

UTF-8(結局最後はこれ?でも容量は膨らむっぽい)

70:nobodyさん
06/01/31 16:07:05
S-JISじゃなくてCP932と考えたほうがいいんでしょ??①とか入るよね。
まあUTF-8のほうがいいと思うけど。多分長い目で見るとS-JISは廃れる。

71:nobodyさん
06/01/31 17:03:46
よく考えたらcp932でもない変な文字入ってるわ。UTF-8にすれ

72:an
11/06/14 00:44:54.25 BE:2732616285-2BP(0)
保守

73:nobodyさん
11/10/26 20:24:10.39
改行を <br> や <br /> にするのってどうなんだろ
1行に1記事とするならこれが一番楽だけど


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch