- 締切済み
複数のファイルの中からランダムに選んでブラウザに表示する
10行程度のテキストファイルが複数あります。 ブラウザで呼び出したとき、ランダムにそのファイルの一つを表示するには、どうしたらいいでしょうか。 コードを教えていただけますとありがたいです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- hogehoge78
- ベストアンサー率80% (433/539)
joy_28さんのコードをさらに簡単にするなら、 <?php $num = rand(0,4); $data = file_get_contents("./txt{$num}.txt"); echo str_replace(array("\r\n", "\n", "\r"), '<br />', $data); ?> ですかね。
- joy_28
- ベストアンサー率84% (45/53)
以下では、どうでしょうか? ・前提:同一階層に、txt0.txt、txt1.txt、txt2.txtのように、5枚あるとして <?php $num=rand(0,4); $file=fopen('./txt'.$num.'.txt','r'); flock($file,LOCK_SH); while(!feof($file)){//行末まで行ってないなら、一行ずつ読み込む $line=fgets($file); print $line.'<br>'; } flock($file,LOCK_UN); fclose($file);
- yambejp
- ベストアンサー率51% (3827/7415)
<?php $dirname="./"; $list=Array(); if ($dir = opendir($dirname)) { while (($file = readdir($dir)) !== false) { if(is_file($file)) $list[]=$file; } closedir($dir); } shuffle($list); ?> っとして$listをすきなだけforで回せばよいでしょう