<?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>';
こんな感じ
ライセンスはパブリックドメインなので好きに使ってください2010.3.28
この前作った,超シンプルな2ちゃんねるビューアでも公開してみる
DATファイルを直接取ってきて,シンプルなスレ表示を行う
正規表現あぼーん機能付きww
しかも,mbstringがなくても動く!
# カタカナの半角カナ化はできない
# コード見て処理ってのはめんどくさいからやってないw
注意点としては,内部処理用の文字コードを設定してないので
デフォルト文字コード設定が変な環境ではバグる可能性あり
普通の環境なら大丈夫だとは思うけど……
GETで「l」パラメータに数字を渡したら表示レス数が調節できる
デフォルトは20
スレのDATがあるURIを事前に指定する必要があるのが難点かな
PHP4の最小構成でも動くと思う
あ,当たり前だけどallow_url_fopenがオフなら動かないよ
で,これはこの前PT2を入手するために秋葉原に行ったとき
PT2買えたスレをケータイからウオッチするために作った
要するにパケ代節約のためだ!
