Maidsphere

2010.3.28

この前作った,超シンプルな2ちゃんねるビューアでも公開してみる DATファイルを直接取ってきて,シンプルなスレ表示を行う 正規表現あぼーん機能付きww しかも,mbstringがなくても動く! # カタカナの半角カナ化はできない # コード見て処理ってのはめんどくさいからやってないw 注意点としては,内部処理用の文字コードを設定してないので デフォルト文字コード設定が変な環境ではバグる可能性あり 普通の環境なら大丈夫だとは思うけど…… GETで「l」パラメータに数字を渡したら表示レス数が調節できる デフォルトは20 スレのDATがあるURIを事前に指定する必要があるのが難点かな PHP4の最小構成でも動くと思う あ,当たり前だけどallow_url_fopenがオフなら動かないよ で,これはこの前PT2を入手するために秋葉原に行ったとき PT2買えたスレをケータイからウオッチするために作った 要するにパケ代節約のためだ! <?php // Simple 2ch viewer (Public Domain) // written by Taichi error_reporting(0); // View count define('DEFAULT_VIEW', 20); // Abone RegExp define('ABONE_REGEXP', '/(A3LXIF1F8B0SFW|B0035F0XKO)/i'); // DAT data is written in "CP932" $dat = file('http://pc11.2ch.net/avi/dat/1267773951.dat'); if (empty($dat)) { exit('DAT LOAD ERROR!'); } if (isset($_GET['l']) && is_numeric($_GET['l'])) { $list = intval($_GET['l']); if ($list < 1) { $list = DEFAULT_VIEW; } } else { $list = DEFAULT_VIEW; } $cnt = count($dat); echo '<html>'; echo '<head><title>2ch</title></head>'; echo '<body>'; for ($i = 0; $i < $list; $i++) { if ($cnt < 1) { break; } $line = array_pop($dat); $line = explode('<>', $line); $line = array_map('trim', $line); $date = $line[2]; $date = explode(' ', $date); $date = array_map('trim', $date); $date = $date[1]; $date = substr($date, 0, 5); $res = $line[3]; if (preg_match(ABONE_REGEXP, $res) === 1) { // Abone! $res = 'Abone!'; } else { // Normal $res = str_replace('<br>', "\n", $res); $res = preg_replace('/\n\s*\n/', "\n", $res); $res = strip_tags($res); $res = trim($res); $res = str_replace("\n", '<br>', $res); } echo '<u>[' . $cnt . '] ' . $date . '</u>'; echo '<br>'; echo $res; echo '<br>'; echo '<br>'; $cnt--; } echo '</body>'; echo '</html>'; こんな感じ ライセンスはパブリックドメインなので好きに使ってください