• ベストアンサー

同一ディレクトリの連番ファイルの一番大きな数字のものをindex.phpに表示する

お手上げで、困っています。 ご教教授いただければ幸いです。 現在、以下のような連番のファイルとindex.phpが1つのディレクトリに格納されている状態で、 この中から、数字の一番大きなものをphpで表示させたいのですが、 どうすれば良いか、ご教授お願い致します。 index.php 01.jpg 02.jpg 03.jpg 04.jpg 05.jpg 06.jpg 07.jpg 08.jpg 09.jpg 10.jpg . . . more 今の状態は、ディレクトリ内のファイルを見るまでです。 その先がお手上げ状態です。 <?php define("dirfile", "."); header("Content-Type: text/plain; charset=utf-8"); $handle = opendir(dirfile); while (($entry = readdir($handle))) { if(is_file(dirfile . "/" . $entry)) { echo $entry . "\n"; } } closedir($handle); ?> よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • exists
  • ベストアンサー率62% (27/43)
回答No.3

こんにちは <?php $dir = './test'; $files = scandir($dir, 1);//ファイルのリストを降順で取得 $key = array_search('index.php', $files);//index.phpを配列から削除 unset($files[$key]); $files = array_merge($files);//添え字振りなおし echo $files[0]; ?> 画像ファイルを探すディレクトリに、画像以外のファイルが、index.php以外にもあるなら、アンセットの部分を繰り返してください。 これでどうでしょう?

omisosam
質問者

お礼

お礼が遅くなってすいません。 こちらでいかせていただきました。 有難うございます。

その他の回答 (2)

  • juri_a
  • ベストアンサー率50% (3/6)
回答No.2

<pre> <?php /* 1 */ $image = ''; $suffix = '.jpg'; $entries = glob( "*" . $suffix ); var_dump( '$entries : ', $entries ); $max = 0; foreach ( $entries as $i => $entry ) { $serial = ( integer ) basename( $entry, $suffix ); $max = max( $max, $serial ); var_dump( '$serial : ', $serial ); var_dump( '$max : ', $max ); if ( $serial == $max ) { $image = $entry; } } echo ( str_repeat( '-', 10 ) . PHP_EOL ); echo ( $image . PHP_EOL ); echo ( str_repeat( '-', 10 ) . PHP_EOL ); /* 2 */ $images = array (); $suffix = '.jpg'; $entries = glob( "*" . $suffix ); var_dump( '$entries : ', $entries ); foreach ( $entries as $entry ) { $serial = ( integer ) basename( $entry, $suffix ); $images[ $serial ] = $entry; } var_dump( '$images : ', $images ); krsort( $images ); var_dump( 'sorted $images : ', $images ); $serials = array_keys( $images ); $max_serial = max( $serials ); echo ( str_repeat( '-', 10 ) . PHP_EOL ); echo ( $images[ $max_serial ] . PHP_EOL ); echo ( str_repeat( '-', 10 ) . PHP_EOL ); ?> </pre> どこでやめようか…

omisosam
質問者

お礼

お礼が遅くなってすいません。 大変参考にさせていただきました。 有難うございます。

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

拡張子を取り除く方法を調べたら良いんじゃない? できあがったらそれをソート

関連するQ&A

専門家に質問してみよう