掲示板のページ送り

よし!今日書いたの動いたのでソース晒し。(コメント付き)

<?php
//1ページに表示する数
$pagemax = 5;

/* ページ送り機能付き表示処理 */

//まず読み込む
$lines = file($log);
//ページ送りのため全ての行数をカウント
$all_com = count($lines);
//全部で何ページか
$page_no = $all_com / $pagemax;

//すげー投げやりだけど$pageの引数がnullでも0でも1にする
if($page==null or $page==1 or $page==1){
    $page = 1;
    if ($page < $page_no){
        $output = array_slice($lines, 0,$pagemax);
        //記事表示のユーザー関数のあとgetでページ送りのリンク
        kiji_view($output);
        echo "<a href = bbs1.php?page=2>next→</a><br>\n";
        }
}else{
    //$pageの引数がある場合、変数$nextpageと$prevpageを用意
    $nextpage = $page+1;
    $prevpage = $page-1;
    //array_sliceで該当のデータ抜き出し(ここんとこ適当)
    $nowpage = $pagemax*$page-$pagemax;
    $output = array_slice($lines, $nowpage, $pagemax);
    //記事表示のユーザー関数のあとgetでページ送りのリンク
    kiji_view($output);
    echo "<a href = bbs1.php?page=$prevpage>←prev</a> \n";
    //最終ページにはnextのリンクを付けない
    if ($page < $page_no){
        echo "<a href = bbs1.php?page=$nextpage>next→</a><br>\n";
    }

}

//記事表示のユーザー定義関数
function kiji_view($output){
    for($i = 0; $i < count($output); $i++) {
        $after = explode("<>", $output[$i]);
        list($non,$tname,$tcom,$date,$host) = $after;
        echo "[$non] $tname >> $tcom <font size=1>[$date]</font><br><hr>\n";
    }
}
?>

はてな記法phpコード表示してるんだけど何故か色がうまくいってないような…?
(助言により色分け成功!:8月31日)


インターネットやりはじめて、cgiの設置をおぼえて(主に掲示板)perlcgiを改造するときに挫折していたのがページ送りだったので、自分の手で出来るようになったのがなにげに嬉しい。いい気分です。
あとは入力時のチェックと削除機能。がんばろう。