- ベストアンサー
PHPで画像ギャラリーを作成
PHPで画像ギャラリーを作成したいのですが、 条件は以下です。 ・作品が合計で16点。 ・それぞれの作品に対し画像が4~7点 ということで、以下のように作成できたらと 思っています。 1.商品ごとにフォルダを作成 2.画面左側にサムネイルで各作品の親写真を表示 3.サムネイルをクリックすると、画面の右側に大きな写真を表示 4.右側の画像の上には、フォルダに格納されている画像の枚数と、 Back Nextを表示させフォルダ内の画像を表示 フォルダを作成して、サムネイルを表示、 そのフォルダ内の画像を表示させる、という方法は http://nettuts.com/videos/screencasts/scanning-folders-with-php/ にてみつけたのですが、 複数のフォルダで、というのは みつけられませんでした。 初心者のため、大変初歩的な質問で申し訳ございません! どなたかご存知の方、 ご教授お願いします!!!!
- みんなの回答 (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>"; } } } て感じかな。(これだとファイル名がずらっと出てくるだけですけどね)
その他の回答 (2)
- koke29
- ベストアンサー率58% (114/196)
まずはサンプルコードの解読をおすすめします よくわからない状態では応用できませんよー $scan = scandir($featured_dir); print_r($scan); これで$scanの中身がどういうものかがわかります 初心者さんとのことですが、配列と繰り返しのいい練習になると思う ので、自力で出来るところまで頑張ってみた方がいいですよ ところで、このサンプルってjavascript絡んでますよね?? 画像フォルダの管理の仕方がjavascriptのコードにあってないと 思ったように表示は出来ないかもしれないので、そこは注意が必要かも 私もlightboxを絡めて不特定多数の画像フォルダを扱うギャラリーを 作ったことがあるのですが、javascriptのコードに合わせて配列の 扱いやループ処理を書くのにちょっと考えたので、もしかしたらの アドバイスでした あと、画像の枚数はcount($配列)-2;でとれます .と..というファイルが入っているので、-2が必要になると思います NEXTとかの処理は、フォルダ名の配列さえ出来上がったら<a>タグに リンク先を指定するだけなので難しくないですよ
お礼
ご回答ありがとうございます。 何に対してどのスクリプトを使うのがいいのか、 そこもわかっていない状態だったので、大変助かりました! >初心者さんとのことですが、配列と繰り返しのいい練習になると思う ので、自力で出来るところまで頑張ってみた方がいいですよ はい、早速試してみようと思います!ありがとうございます。
- mizutaki
- ベストアンサー率33% (111/333)
んー PHPで画像を探索する際にいろいろと調節してあげれば出来ると思いますけどねぇ。 phpのopendirで取得して、その内容をループで探索してあげれば、 結構それくらいは出来ると思いますよ。 上のフォルダに関しては、サーバ関数あたりから現在の位置を把握して、上に上がれるかを調べておけばいいだけです。 具体的に何をしたいのかいまいち把握出来ていませんのでもしかしたら当ての外れた回答かもしれません。
お礼
ご回答ありがとうございます! >具体的に何をしたいのかいまいち把握出来ていませんのでもしかしたら当ての外れた回答かもしれません。 そうですよね(TдT)私が内容をうまく説明できていないんですよね。 申し訳ありません。 opendirでフォルダを開いてループとのアドバイス、ありがとうございます。 なにぶん初心者のため、詳しくわかっていませんが、早速試して見ます。 ありがとうございます!
お礼
お礼が遅くなってしまって申し訳ありません!! ご回答いただいた内容を元に、色々練ってみたのですが・・・ やはり前回おっしゃったように、JavaScriptのコードにフォルダを 絡めるところで行き詰ってしまいました(TдT) ご回答いただいたPHPはなんとなく理解できるので、 そこまで早く行き着けるように、がんばります!! ありがとうございました!