- ベストアンサー
テキストファイルの読み込みについて
- PHP4を使用してテキストファイルの読み込みについて質問させていただきます。現在、作成したいシステムの仕様として、abc.txtというファイルに日付、ID、品物、単価のデータが保存されております。このtxtファイルを二次元的に読み込ませ、一行ずつ表示したいのですが、スライドショー感覚で表示する方法を教えていただきたいです。
- また、次へボタンを作成し、ボタンを押すと次行への表示を行いたいです。自分の考えでは、txtファイルのIDまたは行数をgetやpostで引き渡して次行に移るロジックを組むのではないかと思っていますが、具体的な方法がわかりません。初心者のため、教えていただけるとありがたいです。
- PHP初心者ですが、テキストファイルの読み込みとスライドショー表示について質問させてください。abc.txtというファイルには、日付、ID、品物、単価のデータが保存されています。ファイルを二次元的に読み込み、一行ずつ表示し、次へボタンで次の行を表示する方法を教えていただきたいです。初心者でも理解しやすいロジックがあれば教えてもらえると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 > この変数(outputline)は、以下に続くロジックにどのような処理を行っているのかわかりません。 ごめんなさい。。。 こちらはこのスクリプトでは関係ありませんでした。 例えば1ページに10項目出力し、 テキストファイル中に表示したい行と表示させたくない行がある場合などに、 $iだけでなく、新たに出力ライン($outputline)を指定する必要があります。 例)表示する行:0、1、2、4、5、6、7、8、9、10行目(←3行目は表示させたくない) 0行目 $outputline++; 1行目 $outputline++; 2行目 $outputline++; 3行目 無視 4行目 $outputline++; 略 で、$outputlineが10になったとき、繰り返しを中止するというロジックです。 実は私もこのサイトでページングのやり方を覚えました(笑 参考URLに詳しく載っておりますので、そちらもご参考ください。
その他の回答 (1)
- gonagona
- ベストアンサー率80% (12/15)
こんにちわ。 当方も初心者でスミマセンが、以下はどうでしょう? <?php $page = $_GET['page']; //ページ数を取得 if ($page == "") { //ページ数が空なら0とする $page = 0; } $max = 1; //1ページに表示する最大数 $rec = file("abc.txt"); //ファイルを配列に格納 $rec_size = count($rec)-1; //全レコードの行数を取得 $outputline = 0; //出力値を0に設定 //////////////////////////////////////////////////////////////////////////////////////// // iの初期値は現在のページ数×最大表示数で、 // 現在のページ数×最大表示数+ページ数より小さい範囲でループ // 例えばページ数が1なら、 // 初期値が1、1×最大表示数1+最大表示数1(つまり2)より小さい範囲でループするので、 // 結果的には1しか該当するものが無い。 // 例えばページ数が3なら、 // 初期値が3、3×最大表示数1+最大表示数1(つまり4)より小さい範囲でループするので、 // 結果的には3しか該当するものが無い。 //////////////////////////////////////////////////////////////////////////////////////// for ($i=$page*$max; $i<$page*$max+$max; $i++) { $data = explode(",","$rec[$i]"); //カンマ部でデータ分割 // HTMLを生成 print <<<HTML <p>$data[0]<br> $data[1]<br> $data[2]<br> $data[3]</p> HTML; } if ($page > 0){ //ページ数が0で無ければ「前へ」を表示 print ("<p><a href=\"?page=").($page-1).("\">前へ</a> "); } if ($page < $rec_size) { //ページ数が全レコードの行数より小さい場合は「次へ」を表示 print ("<a href=\"?page=").($page+1).("\">次へ</a></p>"); } ?> 動作は確認しておりますので、 動かしながらロジックを考えていった方が 分かりやすいかと思います。 (↑当方も初心者のため、上手く説明できません・・・)
お礼
早速のお返事ありがとうございました。ページ数をgetで渡し、1レコードずつページ表示させるのですね。サンプルをいただきましたロジックの中に、 $outputline = 0; //出力値を0に設定 とありますが、outputlineは変数でよろしいのですね? この変数(outputline)は、以下に続くロジックにどのような処理を行っているのかわかりません。 よろしければ、ご指導いただけますでしょうか。 どうぞ宜しくお願い致します。
お礼
参考URLの内容が現在、思考中ロジックです。ぜひ、参考にさせていただきます。 どうもありがとうございました。また機会がありましたらご指導の程、宜しくお願い致します。