PHPを勉強中です。
こちらで何度か質問したり色々参考にしてディレクトリ内の最新画像とテキストを表示させるものを作ったのですが、現時点では3回同じようなことを書いてます。これをforeachやwhileを使って3回繰り返すプログラムに書き変えたいのですがどのように書けばいいでしょうか。
やりたいこと
コードの簡略化
functionに変数使っていいのか、複数のforeachを使えるのか、そもそもこの変数の使い方って合っているのかどうか、検索してもなかなか思うような答えにつなげることができませんでした。もし違う書き方があれば教えてもらえると助かります。
※変数名や階層は少し変えてるのでどこか間違ってたらすみません
PHP
1//テキスト 2$text1 = file_get_contents("../text1.txt");//テキスト表示 3$text2 = file_get_contents("../text2.txt"); 4$text3 = file_get_contents("../text3.txt"); 5 6//画像 7function display_img($path){//「display_img」関数定義 8$path = "img1/"; 9$dir = __DIR__ .$path; 10 11$filesarray = array();//ディレクトリを開いて中身をソート 12 if ($handle = opendir($dir)) { 13 while (false !== ($file = readdir($handle))) { 14 if ($file != "." && $file != "..") { 15 $filesarray[filemtime( $dir.$file )] = $file; 16 } 17 } 18 closedir($handle); 19 } 20 ksort($filesarray); 21 if ($handle = opendir($dir)) { //画像表示 22 foreach($filesarray as $file){ 23 global $landscapeimg; 24 $landscapeimg = "<img src='".$dir.$file."' width='100%' />"; 25 } 26 closedir($handle); 27 } 28}
HTML
1<div> 2 <?php 3 display_img($dir,$path);//display_img実行 4 echo $displayimg;//img1最新画像を表示 ?> 5 <p><?php echo h($text1);//text1表示 ?></p> 6</div> 7<div> 8 <?php 9 $path = "img2/";//パスを変更 10 $dir = __DIR__ .$path; 11 display_img($dir,$path)//display_img実行; 12 ?> 13 <?php echo $displayimg;//img2最新画像を表示 ?> 14 <p><?php echo h($text2);//text2表示 ?></p> 15</div> 16<div> 17 <?php 18 $path = "img3/";//パスを変更 19 $dir = __DIR__ .$path; 20 display_img($dir,$path)//display_img実行; 21 ?> 22 <?php echo $displayimg;//img3最新画像を表示 ?> 23 <p><?php echo h($text3);//text3表示 ?></p> 24</div>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/18 04:35
2018/10/18 04:38