とする、簡易ページャーを作りたいのです。
【以下スクリプト】
<?php
//===============一覧の表示===================
$lines = file("main.log"); // ファイルの内容を配列に格納
$num = count($lines);
for($i=0; $i<$num; $i++){
if(isset($lines[$i])){
$str = explode(",", $lines[$i]);
//===============一覧の表示(HTML) ===================
echo "<table width=\"240\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n";
echo "<tbody><tr>\n";
echo "<td width=\"30\" valign=\"top\"><img width=\"30\" height=\"40\" border=\"0\" alt=\"".$name."\" src=\"../img/gravure/".$number."_th.jpg\"/></td>\n";
echo "<td valign=\"top\"><font color=\"#333333\" size=\"1\">".$shop."</font><br/>\n";
echo "<font color=\"#333333\" size=\"1\">[".$area."/".$type."]</font><br/>\n";
echo "<a href=\"".$number.".php\"><font color=\"#ff3366\" size=\"1\">".$name.$age."</font></a><br/>\n";
echo "</td>\n</tr>\n</tbody>\n</table>\n";
echo "<font color=\"#999999\" size=\"1\">└".$title."</font>\n";
echo "<hr color=\"#cccccc\" size=\"1\"/>\n";
}
?>
explode(",", $lines[$i]); 変数の指定は省略しました。
これだと、当然ログファイル全件だ~~~~っと出てくるとのですが・・・。色々調べたのですが、うまくいかず・・・
簡単な例を作ってみました。
<?php //===============環境設定=================== $page = 10; //===============ファイルの読み込み=================== $lines = file("main.log"); // ファイルの内容を配列に格納 $num = count($lines); $p = (isset($_GET['row']) ? min(max(0, $_GET['row'] - 1), floor($num / $page)) : 0); //===============リンク作成=================== $link = ($p > 0 ? '<a href="' . $_SERVER['SCRIPT_NAME'] . '?row=' . $p . '">前の' . $page . '件</a> ': '') . ($p + 1) . ($num - $page * $p > 1 ? ' <a href="' . $_SERVER['SCRIPT_NAME'] . '?row=' . ($p + 2) . '">次の' . $page . '件</a> ': ''); echo $link; //===============一覧の表示(TABLEヘッダ) =================== echo '<table width="240" cellspacing="0" cellpadding="0" border="0"><tbody>'; //===============一覧の表示(TABLEボディ) =================== for($i=0; $i < $page; $i++){ if(isset($lines[$page * $p + $i])){ $str = explode(",", $lines[$page * $p + $i]); echo '<tr><td>' . $str[0] . '</td><td>' . $str[1] . "</td></tr>\n"; } } //===============一覧の表示(TABLEフッタ) =================== echo '</tbody></table>'; echo $link; ?>
上記で利用する main.log の中身は以下のようにとりあえず2列にしていますので、上記スクリプトでは$strは[0]と[1]の二つになっています。列の数だけ$str[2]、$str[3]・・・と適宜増やしてください。
1,a1 2,a2 3,a3 ・・・同様に続く
今回は特に参考にしているサイトも無いのでURLは無しです。
http://d.hatena.ne.jp/shellcat/
URLはダミーです。
//===============一覧の表示=================== $page = $_GET['page'] || 0; $lines = file("main.log"); // ファイルの内容を配列に格納 $num = count($lines); for ($i = 10 * $page; $i < 10 * ($page + 1); $i++){ if ($i >= $num) break; if(isset($lines[$i])){ $str = explode(",", $lines[$i]); //===============一覧の表示(HTML) =================== echo "<table width=\"240\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"; echo "<tbody><tr>\n"; echo "<td width=\"30\" valign=\"top\"><img width=\"30\" height=\"40\" border=\"0\" alt=\"".$name."\" src=\"../img/gravure/".$number."_th.jpg\"/></td>\n"; echo "<td valign=\"top\"><font color=\"#333333\" size=\"1\">".$shop."</font><br/>\n"; echo "<font color=\"#333333\" size=\"1\">[".$area."/".$type."]</font><br/>\n"; echo "<a href=\"".$number.".php\"><font color=\"#ff3366\" size=\"1\">".$name.$age."</font></a><br/>\n"; echo "</td>\n</tr>\n</tbody>\n</table>\n"; echo "<font color=\"#999999\" size=\"1\">└".$title."</font>\n"; echo "<hr color=\"#cccccc\" size=\"1\"/>\n"; if ($page > 0) echo "<a href=\"./?page=" . ($page - 1) . "\">前へ</a>"; if ($page < int(($num - 1) / 10)) echo "<a href=\"./?page=" . ($page + 1) . "\">次へ</a>"; }
こんな感じですか
簡単な例を作ってみました。
<?php //===============環境設定=================== $page = 10; //===============ファイルの読み込み=================== $lines = file("main.log"); // ファイルの内容を配列に格納 $num = count($lines); $p = (isset($_GET['row']) ? min(max(0, $_GET['row'] - 1), floor($num / $page)) : 0); //===============リンク作成=================== $link = ($p > 0 ? '<a href="' . $_SERVER['SCRIPT_NAME'] . '?row=' . $p . '">前の' . $page . '件</a> ': '') . ($p + 1) . ($num - $page * $p > 1 ? ' <a href="' . $_SERVER['SCRIPT_NAME'] . '?row=' . ($p + 2) . '">次の' . $page . '件</a> ': ''); echo $link; //===============一覧の表示(TABLEヘッダ) =================== echo '<table width="240" cellspacing="0" cellpadding="0" border="0"><tbody>'; //===============一覧の表示(TABLEボディ) =================== for($i=0; $i < $page; $i++){ if(isset($lines[$page * $p + $i])){ $str = explode(",", $lines[$page * $p + $i]); echo '<tr><td>' . $str[0] . '</td><td>' . $str[1] . "</td></tr>\n"; } } //===============一覧の表示(TABLEフッタ) =================== echo '</tbody></table>'; echo $link; ?>
上記で利用する main.log の中身は以下のようにとりあえず2列にしていますので、上記スクリプトでは$strは[0]と[1]の二つになっています。列の数だけ$str[2]、$str[3]・・・と適宜増やしてください。
1,a1 2,a2 3,a3 ・・・同様に続く
今回は特に参考にしているサイトも無いのでURLは無しです。
ありがとうございます!参考になりました!
ありがとうございます!参考になりました!