• ベストアンサー

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

juri_aの回答

  • 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
質問者

お礼

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

関連するQ&A

  • ディレクトリを表示

    初心者ですみません。 そのディレクトリにある画像だけをリンクさせて表示したいのですが <?php $curdir = opendir("."); while($name = readdir($curdir)){ print "<a href=\"./{$name}\">画像</a>\n"; } closedir($curdir); ?> とやると.や..やindex.phpまで表示されてしまいます。 if文やwhileをネストしても消えません。 是非画像だけ表示させる方法を教えて下さい。。。

    • ベストアンサー
    • PHP
  • PHPでディレクトリ名のみ表示する方法が知りたいです。以下のプログラム

    PHPでディレクトリ名のみ表示する方法が知りたいです。以下のプログラムで「test」というディレクトリ内のファイル一覧(ディレクトリ名とファイル名)を表示するようにしているのですが、この中からディレクトリ名のみ表示させたいのですがどのようにすればいいのでしょうか? よろしくお願いします。 <?php if ($dir = opendir("test/")) { while (($file = readdir($dir)) !== false) { if ($file != "." && $file != "..") { echo "$file<br>\n"; } } closedir($dir); } ?>

    • ベストアンサー
    • PHP
  • CGIがある場所以外のディレクトリの内容表示方法

    ディレクトリ内にあるファイルの一覧を表示しようとしていますがうまく出来ません。 ---------------- opendir(DIR, "./"); @dir_value = readdir(DIR); closedir(DIR); ---------------- この状態だともちろんですが、CGIがあるディレクトリの一覧を表示します。(この状態で、表示する部分のプログラム(ソース?)が間違っていないことはわかります) この1つ下(同ディレクトリ内に「img」ディレクトリ作成)の内容を表示したいのですが、うまく出来ません。 単純に、 ---------------- opendir(DIR, "./img"); @dir_value = readdir(DIR); closedir(DIR); ---------------- と、してみましたがファイルを表示しません。 他にも、「./img/」または絶対パス(/home/~~)でもだめでした。 下または上のディレクトリを参照するのには上記変更だけでは出来ないのでしょうか? 方法がありましたらお願いします。

    • ベストアンサー
    • CGI
  • readdir()で得られるファイル・ディレクトリ情報の順番は?

    Perlプログラムにて、  opendir(DIR, '.');  @dir_list = readdir(DIR);  closedir(DIR); などとすると、そのディレクトリにあるファイルとディレクトリの一覧情報を得ることができますが、この場合、@dir_list にはどのような順番で情報が格納されるのでしょうか? readdir() 関数の仕様が知りたいです。ご存知の方、ぜひ教えてください。

    • ベストアンサー
    • Perl
  • ファイル名を取得できない

    次のようなソースでディレクトリ内のファイル名を取得しようとしています。 $dh=opendir("."); while(($entry=readdir($dh))){ if(is_file($entry)){ print $entry."<>"; } } closedir($dh); このソースを、取得したいディレクトリ内で動かすとまったく問題ないのですが、ディレクトリのパスを1個上の階層などから相対パスで指定すると、.phpファイルと.htmlファイルは取得するのですが、ほかのファイル名は取得されなくなってしまいます。 何かphp.iniなどで設定があるのでしょうか。 回避方法がありましたら是非ご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ディレクトリ内の拡張子指定ファイル移動

    自分では難解で、同じような質問がなかったため質問します。私は新米です。 ルートディレクトリ(./)内の拡張子が『.send』のファイルを全て別のディレクトリ(./back)に移動するクーロンを組もうと思っているのですが、ルートディレクトリのパーミッションが750のためか下記のスクリプトですと、copyの行及びunlinkの行でPermission deniedのエラーが出ます。 ./backディレクトリに関しては777にしています。 ルートディレクトリのパーミッションはサーバーの仕様で変えられないのですが、何か有効がありますでしょうか?どうかご教授ください。 <?PHP if ($dir = opendir("./")) { while (($file = readdir($dir)) !== false) { if(preg_match("/.send/",$file)) { copy("./".$file,"./back".$file); unlink("./".$file); } } closedir($dir); } ?>

    • ベストアンサー
    • PHP
  • php単体では表示されるが他のページから呼ぶと文字化けをします。

    /img/のフォルダーの中から画像を取得し他のページで表示させようと思ったのですがphp単体では画像が表示されるのですが、require、include もしくは直接そのソースを貼って表示させると画像が文字化けし表示されません。 書いたソース define("TEST_READDIR", "./img/"); $handle = opendir(TEST_READDIR); rewinddir($handle); while (($entry = readdir($handle))) { $file = TEST_READDIR . $entry; if(is_file($file)) { $key = filemtime($file); $keys[] = $key; $data[$key] = $file; } } closedir($handle); if ( isset($keys) ) { rsort($keys); $fp = fopen($data[$keys[0]], "rb") or die(); print fread($fp, filesize($data[$keys[0]])); fclose($fp); } exit(0); なぜ他から呼び出すと表示されないのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • ディレクトリ内の最新の画像のみ表示したい。

    ディレクトリファイルから画像ファイルの更新日時を取得して、 拡張子を問わず、最新の画像のみ表示させたいのですが、 うまく出来ません。ご教授お願いします。 ~・~・~・~・~・~・~ <?php $dir = @opendir("****"); while($file = readdir($dir)) { $kaku = substr($file, -3, 3); if($kaku=="jpg" || $kaku=="gif" || $kaku=="png"){ $cnt++; $last = date("ymdHis", filemtime($file)); $img="$last$file"; $filename[$cnt]=$file; } } closedir($dir); } arsort($img); $img_file= substr($img, 12); $cnt=0; foreach($img_file as $value){ $cnt++; if ($cnt<=1){ echo "<img src=\"$value\">"; } } ?>

    • ベストアンサー
    • PHP
  • 初歩的な質問だと思います。IFの条件文

    よろしくお願いします。 PHPリファレンスに,以下のように書いてありました。 <?php if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo "$file\n"; } } closedir($handle); } ?> 2行目のifの条件文なのですが,=は代入することを表すから, ()の部分は条件文にならないと思ったのですが,どう解釈すれば良いのでしょうか。

    • ベストアンサー
    • PHP
  • ディレクトリ内の最新ファイルのみをコピーが上手くいかない

    下記のようなスクリプトにより、 ./ディレクトリ内の更新日付が最新のファイル名を取得し、 そのファイルを./bbbディレクトリにコピーするということを行いたいのですが、 更新日付が最新のものに関わらず全てのファイルがコピーされてしまいます。 <?PHP $dir = opendir("./"); $latestfile = 0; while ($fnm = readdir($dir)) { if($fnm == "." || $fnm == "..") continue; $ftime = filemtime("$fnm"); if($latestfile < $ftime){ $latestfile = $ftime; $latestfilename =$fnm; $to="./bbb/".$fnm; if(!file_exists($to)) copy("./".$fnm,$to); } } closedir($dir); ?> 自力ではどこがヘンなのか理解できないため、どなたか教えてください。

    • ベストアンサー
    • PHP