• ベストアンサー

複数のフォルダに格納された画像枚数を読み込むPHP

いつもお世話になっています。 複数のフォルダの中に画像が入っていて、 その中に何枚入っているかの数字を カウントしたいと思っているのですが、 なかなかうまくいきません・・・。 フォルダーの指定を以下のようにしているのですが、 <?php $folder[0]='picture/1/'; $folder[1]='picture/2/'; $folder[2]='picture/3/'; $folder[3]='picture/4/'; $folder[4]='picture/5/'; $folder[5]='picture/6/'; $fname='画像名?'; ?> このときの$fnameの指定の仕方がわかりません。 thum.gif などとして、 全てのフォルダにthum.gifを入れればいいのでしょうか? それとも他に方法があるのでしょうか? 初心者な質問で申し訳ありません!! ご存知の方、宜しくお願いいたします。

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

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.3

>> echoで出力してみると、「array」となってしまいます・・・(TдT) 提示したプログラムをそのまま使用して試しているのでは無く 何か変更しているか、他にプログラムを付け加えていますね。 >> $fnameで指定する画像は一定でないと読み込んでくれません(TдT) 私の想定していた使い方と違う使い方をしているようです。 クリックしたファイルの何枚中何枚目だけを表示したいと思ったので とりあえず下記コードで、$folder[]の値だけ変更して あとはコピペで実行してみてください。 ここで表示される情報の中にほしい情報はありますかか? <?php $folder[0]='picture/1/'; $folder[1]='picture/2/'; foreach($folder as $k=>$v){ $f[$v]=0; $d = dir($v); while (false !== ($entry = $d->read())) if (eregi('\.(jpg|jpeg|gif|png)$',$entry)) $f[$k][]=$entry; $d->close(); } foreach($folder as $k=>$v){ echo "\nフォルダー名:「".$v."」 画像数=".count($f[$k])."枚 <br>\n "; foreach($f[$k] as $no=>$j){ echo count($f[$k])."枚中".($no+1)."枚目 ファイル名=".$v.$j." <br>\n "; } } ?>

mihomama84
質問者

お礼

>提示したプログラムをそのまま使用して試しているのでは無く 何か変更しているか、他にプログラムを付け加えていますね。 その通りでした!JavaScriptが絡んでいたため、 正常に動かないのでした(*´Д`)=з PHPでの読み込みを1クリック目だけにして、あとのクリックはJavaScriptで読み込むことで解決しました!!! 長々と本当にお世話になりました。 本当にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • katsuq
  • ベストアンサー率0% (0/1)
回答No.4

echoで表示できるのは、文字列か、文字列に自動的に変換される値だけですので、配列やオブジェクトが変数に格納されている場合、思ったように表示されません。 変数の中身をのぞきたいので表示させるときは、print_rか、var_dumpを使うとよいでしょう。 print_r($a); var_dump($b); のように使います。 もし、動かなくてお困りなら、プログラム全体を見せてもらわないとなんとも言えません。そういうわけにもいかないのかもしれませんが、ほかの質問の続きであるのなら、そちらも示してもらわないとなんとも。

全文を見る
すると、全ての回答が全文表示されます。
  • mpx
  • ベストアンサー率71% (149/209)
回答No.2

>> 複数のフォルダの中に画像が入っていて、 >> その中に何枚入っているかの数字を >> カウントしたいと思っているのですが、 フォルダ毎の画像数を知りたいだけなら下記参照 <?php $folder[0]='picture/1/'; $folder[1]='picture/2/'; -- 中略 --- $folder[5]='picture/6/'; //フォルダ毎の画像ファイル数計測 foreach($folder as $k=>$v){ $f[$v]=0; $d = dir($v); while (false !== ($entry = $d->read())) if (eregi('\.(jpg|jpeg|gif|png)$',$entry)) $f[$v]++; $d->close(); } //結果表示 フォルダ名:画像枚数 foreach($f as $v=>$c){ echo $v." : ".$c."枚\n"; } ?> >> このときの$fnameの指定の仕方がわかりません。 この$fnameは、以前の質問 http://okwave.jp/qa4987152.html の質問内に記載のされていた「フォルダxの画像がクリックされたときは」 のクリックされたファイル名を入れるだけです。  以前の質問から推測すると、 画面上にフォルダー毎の画像が表示されており、 その中の画像をクリックすると、そのリンク先に飛び 「5枚中1枚目」などと表示する。 画像の各リンクには、各画像を特定する画像ファイル名か画像のIDを含んでいる はずなので、POST(またはGET)された受け側ではその画像ファイル名が受けられるはずです。(IDの場合は、画像ファイル名に変換が必要) その画像のファイル名を$fname入れることを前提としています

mihomama84
質問者

補足

前回に引き続きご回答本当にありがとうございます! 頂いたPHPをいれてみたのですが、$vを echoで出力してみると、「array」となってしまいます・・・(TдT) ここから動けず、本当に困っています。 もし何かご存知の点があれば 教えて頂ければ幸いです。 宜しくお願いします!!!

全文を見る
すると、全ての回答が全文表示されます。
  • katsuq
  • ベストアンサー率0% (0/1)
回答No.1

複数のフォルダにあるファイルを探すのには、phpの場合、globという関数を使うとよいと思います。 http://jp.php.net/manual/ja/function.glob.php をご覧ください。 たとえば、 <? print_r(glob("picture/*/*")); ?> を実行してみると感じがわかると思います。 これを <? print_r(glob("picture/*/*.gif")); ?> とやれば、suffixがgifのものだけを選べます。 数を調べたければ、 <? echo count(glob("picture/*/*.gif")); ?> なんてどうでしょう。 お役に立てば…

mihomama84
質問者

お礼

ご回答ありがとうございます! 私の実力が足りないのか、やはり $fnameで指定する画像は一定でないと 読み込んでくれません(TдT) もうちょっとがんばってみます!! ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 画像が・・・・

    エキサイトブログでブログをつっています。 そこで、画像を貼りたいですが、拡張子が、gifになっているのにもかかわらず、貼れません。(本当はgifなら貼れる筈なんですが) フォルダの中を見てみるとgifのアイコンの左上にピクチャーマネージャーのアイコンがついていました。 画像が貼れないのはこのせいだと思います。 ピクチャーマネージャーのアイコンを消す方法を教えてください。 お願いします。

  • PHPで、指定フォルダ(サブフォルダ含む)内の更新日時が一番新しいファ

    PHPで、指定フォルダ(サブフォルダ含む)内の更新日時が一番新しいファイル名を取得したいです。 良いスクリプト記述はありますでしょうか。。。 ホームページのトップに最新の画像を自動で載せておきたいのです。 img/2005/***.jpg といった感じでimgフォルダ内に複数の年別フォルダがあり、 更にその中に画像ファイルが入っています。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 異なるフォルダ内の複数のtexファイルで,1つの画像フォルダから画像を呼び出す方法

    質問を見ていただき有り難うございます. 現在異なるフォルダ内にある複数のtexファイルで,同じ画像フォルダから画像を呼び出す方法を探しています. 同じフォルダの中に複数の.texファイルを作成すれば同じ画像フォルダから画像を呼び出すことはできます. [TeXフォルダ]内に[1.tex]と[2.tex]と[Imageフォルダ]がある場合などです. しかしながら,このようにすると.texファイルが増えるとTexフォルダの中がとても見づらくなってしまうと思います. そのため,全く異なる[Texフォルダ1]内の[1.tex]と[Texフォルダ]内の[2.tex]で同じ[Imageフォルダ]から画像を呼び出す方法を探しています. 宜しくお願いいたします.

  • 複数フォルダの画像を一つのフォルダにショートカット

    画像の入った複数の既存のフォルダがあります。 このそれぞれのフォルダの中にある画像ファイルを全てショートカットで抜き出し、 撮影日時順に、ひとつの新規フォルダの中に一覧状態にして展開したいです。 それぞれをコピーするのではなく、ショートカットで一つのフォルダに集めたいです。 それを、元の既存フォルダは無関係に、一元的に新規フォルダの中で一覧することはできませんでしょうか。 元の複数の既存フォルダには影響を与えたくないです。 そういうことができるソフトなどはないでしょうか。 windows7を使用しています。 windows live フォトギャラリーは閲覧はできるのですが、 フォルダとしては認識しないようですので、これは違うのかもしれません。 ちょっと言葉が足りないと思いますので、その場合、補足いたします。 どうぞ、ご返信下さい。

  • 画像保存の枚数制限

    宜しくお願いします。 画像保存の枚数制限したいと思っています。 画像保存フォルダの中をカウントではなく、 画像の情報を管理しているログの行数でカウントして 枚数制限をしたいと思います。 参考になるコードかコードを教えて下さい。 お願いします。

    • 締切済み
    • PHP
  • 複数フォルダに格納されたファイル名取得VBA

    お世話になっております。 あるフォルダに複数のフォルダが格納されており、更にそのフォルダの中にあるファイルの情報を取得するプログラムを書いたのですが、実行すると下記のようなエラーとなってしまいます。 ■エラー プロシージャの呼び出し、または引数が不正です 下から3行目、「buf = Dir()」が問題であることはわかるのですが、 何が問題でどのように解決したらいいかわかりません。 どなたかご教授の程よろしくお願い致します(>_<) ------------------------------------------------------------------------ Sub test() Dim buf As String Dim fName As String Dim msg As String buf = Dir("*.*", vbDirectory) Do While buf <> "" If GetAttr(buf) And vbDirectory Then If buf <> "." And buf <> ".." Then fName = Dir(CurDir & "\" & buf & "\" & "*.jpg") Do While fName <> "" cnt = cnt + 1 Cells(cnt, 1) = buf Cells(cnt, 2) = fName msg = msg & buf & "\" & fName & vbCrLf fName = Dir() Loop MsgBox msg End If End If buf = Dir() Loop End Sub ------------------------------------------------------------------------ これが実現できないと細かい作業を毎日繰り返す事となり、 かなり業務不可が高いです。。 繰り返しになってしまいますが、どなたかご回答よろしくお願い致します。

  • phpで格納した画像を表示されるには?

    超の付く初心者で毎日苦闘しています。ほんとにすみませんが何方か教えてください。 「(1)写真を登録して、(2)それを表示させる」だけの事を練習でやっているんですが、どう書けばいいんでしょうか。 (1)【画像登録のフォーム】/test_info.html ----------------------------------------------------------- <form action="test_put.php" method="post" enctype="multipart/form-data"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="500000"> //←500kbまでという意味なんですよね? <input type="file" name="uploaded" size="50" /><br /> <input type="submit" value="アップロード" /> </form> ------------------------------------------------------------ (2)【画像を一旦受けて、指定するフォルダに移動させるPHP】/test_put.php ------------------------------------------------------------ <?php move_uploaded_file($_FILES['uploaded']['tmp_name'],'./images/'.$_FILES['uploaded']['name']); print('アップロードに成功しました!<br />'); print $_FILES['uploaded']['name']; ←この部分を文字ではなく画像で! ?> ------------------------------------------------------------- 上記は殆ど本・Webのパクリですが、矢印部分に「画像を出しなさい!」という命令を書けばいいんだと思いますが、それがわかりません。なんと書けばいいんでしょうか? 【状況】 ●ロリポップのサーバーに実際にアップして試しています。 ●/test_info.html 画面から適当な写真データを送信すると/test_put.php 画面に遷移して、「アップロードに成功しました!」改行して「****.jpg」と表示されます。  ●ロリポのftp管理画面上で確認すると、アップした写真データは正常にアップされています。 mysqlに行くまでのスタートにも立てない状態です。ここまで何ヶ月も掛かってこんなもんです(^_^;) どなたかよろしくお願いいたします!

    • ベストアンサー
    • PHP
  • 画像をフォルダーからの移動

    例えばピクチャー内のAフォルダーに4枚の画像があります。その中の1枚をBフォルダーに移動させたいのですが、出来ません。AフォルダーごとBフォルダーに移動してしまいます。中の1枚だけの移動方法をおしえてください。OSはXPです。教えてください。お願いします。

  • フォルダ内の画像サムネールを表示させたいのですが

    ピクチャー・フォルダを開けたとき、それぞれの画像ファイルのサムネイルが 表示されなくなってしまいました。 縮小版の四角い絵は表示されているのですが、jpgはすべて同じ山の風景のような絵、gifは積み木のような絵になっています。 以前は表示されていて、そのファイルがどんな画像がわかるようになっていたのですが、元に戻すにはどうしたらいいのでしょうか。

  • ピクチャフォルダーが消しても再度現れる

    エクスプローラでディスクトップの自分のフォルダーを見ると ピクチャフォルダーが二つあるので、後で作成されたピクチャフォルダーを 削除しても、IEを開いて画像保存等行うと再びピクチャフォルダーが作成されて 二つピクチャフォルダーが出来てしまいます。 IEをの画像保存等のフォルダー指定がおかしいのですか?

このQ&Aのポイント
  • 印刷したら真っ黒になるトラブルについて相談します。最初はQRコードがつぶれるだけでしたが、現在は印刷全体が真っ黒になります。
  • 使用環境はWindows10でUSBケーブル接続です。関連するソフト・アプリはありません。電話回線はひかり電話です。
  • この問題についてのブラザー製品の質問です。印刷すると画面が真っ黒になるトラブルが発生しており、解決策を教えていただきたいです。
回答を見る