テキストファイルの読み込みを逆順に表示したい。 - PHPプロ!Q&A掲示板
アップロード時にテキストファイルにファイルタイトル、ファイル名を書き込み、そのテキストファイルを読み一覧表示させるところまでできるようになりました。
現在表示されている一覧を逆順に表示したいのですが、何か良い方法がございましたら教えて下さい。
●アップロード画面(index.php)
- <form action="upload.php" method="post" enctype="multipart/form-data">
- <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
- タイトル<input type="text" name="title" size="50"><br>
- ファイル
- <input type="file" name="upfile" size="30"><br>
- <br>
- <input type="submit" value="アップロード">
- </form>
●upload.php
- $filepath = "failename.txt";
- $string = $_POST["title"]; //タイトル名
- $updir = "files/";
- //アップロード
- if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
- $file_type = pathinfo($_FILES['upfile']['name'], PATHINFO_EXTENSION);
- $copy_file = date("Ymd-His") . "." . $file_type;
- if(move_uploaded_file($_FILES["upfile"]["tmp_name"],"$updir/$copy_file")) {
- chmod("files/" . $copy_file, 0644);
- //ファイル名書き込み
- $fp = fopen($filepath, "a"); // 追加書き込みモード
- @fwrite($fp, $string ."\t". $copy_file . PHP_EOL);
- fclose($fp);
- echo $_FILES["upfile"]["name"] . "をアップロードしました。";
- echo '<a href="list.php" target="blank">確認する</a>';
- } else {
- echo "ファイルをアップロードできません。";
- }
- //ファイル選択なし
- } else {
- echo "ファイルが選択されていません。";}
●list.php
- $filepath = "failename.txt";
- $fp = fopen($filepath, "r"); // 読み取りモード
- $array = file($filepath);
- foreach ($array as $line) {
- list($title, $file) = explode("\t", trim($line));
- $file = 'files/' . $file;
- if (file_exists($file)) {
- print '<a href="' . $file . '">' . $title . '</a><br />' . PHP_EOL;
- }
- }
- fclose($fp);
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。





ページのトップへ


kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。