• ベストアンサー

PHPで画像ギャラリーを作成

PHPで画像ギャラリーを作成したいのですが、 条件は以下です。 ・作品が合計で16点。 ・それぞれの作品に対し画像が4~7点 ということで、以下のように作成できたらと 思っています。 1.商品ごとにフォルダを作成 2.画面左側にサムネイルで各作品の親写真を表示 3.サムネイルをクリックすると、画面の右側に大きな写真を表示 4.右側の画像の上には、フォルダに格納されている画像の枚数と、 Back Nextを表示させフォルダ内の画像を表示 フォルダを作成して、サムネイルを表示、 そのフォルダ内の画像を表示させる、という方法は http://nettuts.com/videos/screencasts/scanning-folders-with-php/ にてみつけたのですが、 複数のフォルダで、というのは みつけられませんでした。 初心者のため、大変初歩的な質問で申し訳ございません! どなたかご存知の方、 ご教授お願いします!!!!

この投稿のマルチメディアは削除されているためご覧いただけません。
  • PHP
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
  • koke29
  • ベストアンサー率58% (114/196)
回答No.3

お。やる気のある方は応援します! まず、処理自体は上パートも下パートも似たような感じですから 下パートの解読をしてみるといいですよ 中身がなんだかわからないものは、print(echo)、print_rで見まくる あと、サンプルをサーバ上で開いてソースを見てみるのもいいです 変数が実際はどういうタグになっているのか、わかりやすいです 結論からいうと、サンプルのコードで使っている関数だけでも実装可能 なので、使われている関数の意味や使い方を理解出来れば大丈夫です フォルダの個数や名称があらかじめ決定してて増減無しの条件であれば 私ならフォルダ名をあらかじめ配列にして処理すると思います $dir = array("a","b","c"); foreach($dir as $value){ $scan = scandir("images/featured/".$value."/"); for ($i=0; $i<count($scan); $i++) { if ($scan[$i] != '.' && $scan[$i] != '..') { print $scan[$i]."<br>"; } } } て感じかな。(これだとファイル名がずらっと出てくるだけですけどね)

mihomama84
質問者

お礼

お礼が遅くなってしまって申し訳ありません!! ご回答いただいた内容を元に、色々練ってみたのですが・・・ やはり前回おっしゃったように、JavaScriptのコードにフォルダを 絡めるところで行き詰ってしまいました(TдT) ご回答いただいたPHPはなんとなく理解できるので、 そこまで早く行き着けるように、がんばります!! ありがとうございました!

その他の回答 (2)

  • koke29
  • ベストアンサー率58% (114/196)
回答No.2

まずはサンプルコードの解読をおすすめします よくわからない状態では応用できませんよー $scan = scandir($featured_dir); print_r($scan); これで$scanの中身がどういうものかがわかります 初心者さんとのことですが、配列と繰り返しのいい練習になると思う ので、自力で出来るところまで頑張ってみた方がいいですよ ところで、このサンプルってjavascript絡んでますよね?? 画像フォルダの管理の仕方がjavascriptのコードにあってないと 思ったように表示は出来ないかもしれないので、そこは注意が必要かも 私もlightboxを絡めて不特定多数の画像フォルダを扱うギャラリーを 作ったことがあるのですが、javascriptのコードに合わせて配列の 扱いやループ処理を書くのにちょっと考えたので、もしかしたらの アドバイスでした あと、画像の枚数はcount($配列)-2;でとれます .と..というファイルが入っているので、-2が必要になると思います NEXTとかの処理は、フォルダ名の配列さえ出来上がったら<a>タグに リンク先を指定するだけなので難しくないですよ

mihomama84
質問者

お礼

ご回答ありがとうございます。 何に対してどのスクリプトを使うのがいいのか、 そこもわかっていない状態だったので、大変助かりました! >初心者さんとのことですが、配列と繰り返しのいい練習になると思う ので、自力で出来るところまで頑張ってみた方がいいですよ はい、早速試してみようと思います!ありがとうございます。

  • mizutaki
  • ベストアンサー率33% (111/333)
回答No.1

んー PHPで画像を探索する際にいろいろと調節してあげれば出来ると思いますけどねぇ。 phpのopendirで取得して、その内容をループで探索してあげれば、 結構それくらいは出来ると思いますよ。 上のフォルダに関しては、サーバ関数あたりから現在の位置を把握して、上に上がれるかを調べておけばいいだけです。 具体的に何をしたいのかいまいち把握出来ていませんのでもしかしたら当ての外れた回答かもしれません。

mihomama84
質問者

お礼

ご回答ありがとうございます! >具体的に何をしたいのかいまいち把握出来ていませんのでもしかしたら当ての外れた回答かもしれません。 そうですよね(TдT)私が内容をうまく説明できていないんですよね。 申し訳ありません。 opendirでフォルダを開いてループとのアドバイス、ありがとうございます。 なにぶん初心者のため、詳しくわかっていませんが、早速試して見ます。 ありがとうございます!

関連するQ&A

  • flashのギャラリー作成で

    flash8です。 サムネイル1をクリックすると、 画面中央に、該当する写真が大きく表示され 大きい写真をクリックすると指定されたurlに飛ぶという ギャラリーを作りたいです。 (サムネイルは4つあり、クリックするとそれぞれの画像が表示される) できればAS2.0で作りたいです。 すみませんが教えてください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • PHPで画像を作成したい!

    OS :RedHat Linux 9 php:バージョンは4系です。 GD関連はインストール済みです。 数値データがあり、そのデータを元に画像を作成したいのですが、 PHPで作成したページを開いた時に数値データを読み込んで 画像を作成し、表示させたいと思っています。 ただ、ページ全体に画像を表示させるのではなく、 決められた箇所に表示させたいのですが、 どういった方法で行えばよいのでしょうか?

    • 締切済み
    • PHP
  • 【PHP+ImageMagick】画像アップロード

    【PHP+ImageMagick】現在、PHP Version 5.1.6にて以下の事をしようとしています。 1画像のUPLOAD(move_uploaded_file関数) 2UPLOADした画像のサムネイル作成(ImageMagickのconvertコマンド) 「手順START」 ・00003.JPGをアップロード ・00003.JPGのサムネイル作成失敗。 ・サムネイル作成部のみを抽出したスクリプトにて00003.JPGに対してサムネイル作成を実行 ・サムネイル作成失敗 ・cp -p 00003.JPG 000033.JPG とし000033.JPGを作成 ・権限等を00003.JPGと同じ物とし修正。 ・サムネイル作成部のみを抽出したスクリプトにて000033.JPGに対してサムネイル作成を実行 ・サムネイル作成成功 「手順END」 convertコマンドにて標準出力に吐き出されたログを見ると、画像ファイルに対して「Permission denied」と出力されていました。 ちなみに、コマンドベースでのphp実行は問題なく処理されます。今回の現象はWebブラウザからのアクセス時のみに発生しています。 php.iniのセーフモードはOFFになっています。 この現象について、わかる方がいらっしゃいましたら教えて頂けないでしょうか?よろしくお願いします。

    • 締切済み
    • PHP
  • ネットワークドライブの画像

    本体のドライブに保存している画像のサムネイルは表示されますが、ネットワークドライブ上の画像のサムネイルが表示されません。 正確には、サムネイル画像作成中?は表示されますが、フォルダ内の画像全部のサムネイル作成が終わったと同時に全部標準アイコンに戻ってしまいます。 フォルダオプションの「縮小版は表示しない」にチェックは入っていませんので設定は間違っていないと思っているのですが・・・ どなたかお分かりの方、よろしくお願いします。

  • PHPで吐き出した画像にリンクをつけるのはどうすればいいでしょうか?

    よろしくお願いいたします。 今回初めて本格的なPHPのプログラムを作ろう!と思ってみたのですが、早速どうすればいいのかわからなくなってしまい、投稿させていただきました。 ImageCopyResized()関数を使って画像を縮小してサムネイルとして 作成しようと思っているのですが、その画像にリンクをつける方法がわかりません。 どうすればいいでしょうか?説明が不足していたらすいません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • androidの「ギャラリー」の非表示フォルダ

    ギャラリーに表示したくないフォルダを作りたいと思っています。 1、ブラウザの設定で、 ダウンロードフォルダを「.nomedia」に指定しました。 2、ブラウザから画像のダウンロードを行うと、 ギャラリーの中に「.nomedia」のフォルダが表示されてしまいます。 3、ダウンロードした画像のサムネイルのみが表示されて、 「.nomedia」にある全部の画像が表示されるわけではないです。 4、何らかの方法でメディアスキャンを実行して再読み込みすると、 非表示になるようです。 ブラウザからダウンロードした段階では やっぱり自動でサムネイルが作成されてしまうのでしょうか? 直で「.nomedia」ではなく、手動で画像を移動するしかないのでしょうか? よろしくお願い致します。

  • Irfan Viewでわからない事があります!

    はじめてIrfan Viewを使っています。 バージョン4.10で日本語版です。 画像を一覧で見たいので主にサムネイル表示で使っています。 そこで質問なのですが  サムネイル表示の時、左側にフォルダ一覧、右側にファイル一覧が表示されますが、右側にフォルダは表示されないのでしょうか?同じ階層にフォルダとファイルが両方あった場合でも、フォルダは表示されず、ファイルしか表示されません。 例えば、windowsのエクスプローラーでは、ちゃんとフォルダも右側に表示されますよね? VIXでも表示されていました。Irfanでは無理なのでしょうか? あと、フォルダの新規作成はIrfan上で出来ますか? windowsのエクスプローラーやVIXでは、画面上で右クリックするとフォルダの新規作成が出来ますが、Irfanでもできますか? あと、デジカメ写真のサイズをリサイズする時に 1600×1200ピクセルから800×600ピクセルくらいにまでリサイズした時、 VIXでは画質が荒くなってしまいます。 Irfanでも荒くなりますか?? ご存知の方教えて下さい!

  • PHPのGDライブラリについて

    掲題の件について質問です。 いま、PHPのGDライブラリを用いて大量の既存のイメージファイル(JPEG)から各三種類ほどのサムネイルを作成しているのですが一点問題があります。 既存のイメージを縮小してサムネイルを作成しているのですが、この元となる画像は 解像度72dpiの画像となるのですが、GDを用いて作成されたサムネイルは96dpiの解像度として作成されるのです。 故合ってdpiは72でなければなりません。 このPHPのGDライブラリで画像のDPIの指定は出来ないでしょうか? 識者の方、よろしければご教授ください。 お願い致します。

    • ベストアンサー
    • PHP
  • PHPで表示だけ画像サイズ・データを小さくしたい

    サイトに表示させる画像は、サムネイル用の小さな画像と大元の大きな画像に分けていますよね。 CSSなどで大きさだけ変えることができますが、これだと元のデータ量のまま閲覧者がダウンロードすることになりますから、データ量が大きいと表示が遅かったり、スマホなど使ってる人は余計な料金がかかってしまいます。 だからサムネイル用の小さな画像を用意するわけですが、サムネイル用と大元の画像二つ用意する分、容量がもったいないなと。 できれば画像データは大元の大きい物だけにして、PHPで表示するときだけサイズやデータ容量を小さくして閲覧者の負担も下げられないかと考えています。 確かPHPには画像加工の命令があったかと思いますが、これで小さく加工した後、サーバーに残さずただ表示させるだけで、閲覧者がページを閉じたら削除みたいにできないかなと思っていたのですが、いまいちやり方がわかりません。 この方法も含めて他に良い方法はないでしょうか? ブログの記事には小さな画像をサムネイルとして表示し、クリックしたら大きな元の画像に辿り着くというような作りにしたいです。

    • ベストアンサー
    • PHP
  • こんな感じの画像管理ソフトはありますか?

    大量の写真があり、それをフォルダ分けしています。 フォルダの数だけでも4,000個くらいあります。 フォルダにはもちろん名前を付けているのですが、どんな写真が入っていたか 覚えていないものもあります。 で、フォルダの中から1枚だけサムネイルのように表示できて そのサムネイルの写真1枚をクリックすると、目的のフォルダに ハイパーリンクのように飛んでくれるようなソフトを探しています。 ま、画面上にはフォルダの数と同じ4,000枚くらいの写真が表示されるわけですから その中から自分の目で写真を探したいと考えています。 あったらうれしいな♪

専門家に質問してみよう