• 締切済み

どうしても考え方がわかりません。

テキストファイルの中身を検索して、 画像のファイル名を取り出し画像を表示するプログラムを作成したいと思っております。 テキストファイルの内容は 070625-umi.jpg 070628-umi.jpg 070615-umi.jpg 070627-umi.jpg 070629-umi.jpg 070627-yama.jpg 070618-yama.jpg   ・・・   ・・・   ・・・ と日付が順不同で、日付がとんでいる日もあります。 現在ページ内に070627-umi.jpgの画像が表示されてて 「前のデータ」「次のデータ」のリンクボタンを作成しクリックすると 前のデータ(070625-umi.jpg)や次のデータ(070615-umi.jpg)を 070627-umi.jpgが表示されているところに表示されるように作成したいと思っております。 この2日間ずっと考えているのですが、どのようにロジックを組めばいいの分からなく投稿させていただきました。 初心者ですがよろしくお願いします。

  • PHP
  • 回答数3
  • ありがとう数0

みんなの回答

  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.3

ファイル名を配列に格納しておき、 現在表示中の写真に対応する配列の引数を基にリンクを作成すればいい。 例えば $fn[0]="070625-umi.jpg"; $fn[1]="070628-umi.jpg"; $fn[2]="070615-umi.jpg"; $fn[3]="070627-umi.jpg"; としておいて、 現在表示してる写真が$fn[0]なら、前はなしで次は$fn[1]。 現在表示してる写真が$fn[2]なら、前は$fn[1]で次は$fn[3]。 ファイル名を配列に入れる手段はいろいろあるけど、 ファイル作成日やアルファベット順なら簡単。 任意の順番にする場合は手作業でファイル一覧を作るといいかも。

  • widoww
  • ベストアンサー率20% (33/159)
回答No.2

えっと、umi(orYAMA)のみ取り出して 日付順に並べた配列を生成すればよいと思いますが? 今回の場合ファイル名の頭に時間がきてるので 単純に昇順にソートすれば結果的に時間順で並びます。 それが『聞きたいこと』でいいでしょうか? <? function filter($aryval) { return strstr($aryval,"umi"); //umiを含んでいるものだけをフィルタリングする } $tarray=file("data.txt"); //date.txtの行ごとに配列化 $tarray=array_filter($tarray,"filter"); //umiを含むものだけをフィルタリング sort($tarray,SORT_STRING); //辞書(先頭日付順にソート(先頭の日付順) print_r ($tarray); //表示 ?>

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

テキストファイルの内容をよく見てみたのですが、 070627-umi.jpgと >前のデータ(070625-umi.jpg)や次のデータ(070615-umi.jpg)を の関連性がよくわかりません。 質問が間違っているのか、何らかの関連性があるのか補足してください。

reoreo1234
質問者

補足

>前のデータ(070625-umi.jpg)や次のデータ(070615-umi.jpg)を・・・ の部分は間違いです。 070625-umi.jpg 070628-umi.jpg 070615-umi.jpg 070627-umi.jpg 070629-umi.jpg 070627-yama.jpg 070618-yama.jpg   ・・・   ・・・   ・・・ 現在ページ内に070627-umi.jpgの画像が表示されてて 「前のデータ」「次のデータ」のリンクボタンを作成しクリックすると 【前のデータ(070625-umi.jpg)や次のデータ(070628-umi.jpg)を・・・】 が正解です。 「前のデータ」をクリックするとテキストファイルにある070627等の 日付を見て、その中で現在表示されている日付より前のデータを抽出したいのです。これでは現在「070627-umi.jpg」が表示されているので 「前のデータ」のリンクをクリックすると「070625-umi.jpg」が表示。 「次のデータ」をクリックすると次の日付、「070628-umi.jpg」が070627-umi.jpgが表示されるようにしたいです。 質問する側なのに文章が間違って大変申し訳ありませんでした。

関連するQ&A

  • PHPを使ってこれってできますか?

    画像が見えるサイトを作成中です。 textファイルに現在公開する画像のファイル名の一覧を作成しています。 内容は風景(yamaは山、seaは海、matiは街),季節(1が春、2が夏、3が秋、4が冬),撮った年号のtextファイル。 yama-1-06.jpg yama-1-04.jpg yama-1-05.jpg yama-2-06.jpg yama-2-05.jpg . . sea-1-06.jpg sea-1-05.jpg . . mati-1-05.jpg mati-1-04.jpg . . と続きます。(順不同で、ない年号もあります) このtextファイルを使用して、画像を表示することってできますか? 風景→季節→年号を選択できるようにすでにページは作成してありますが、画像をどのようにして表示しようか迷っています。 できれば画像表示のページで、「前の写真が見えるリンク設定」、「次の画像が見えるリンク設定」を作成し、クリックすると同一ページに表示したいと考えております。 textファイルの年号が順番に続いてればいいのですが、ない年号があったり、季節がなかったりします。 そのためtextファイルから画像の有無を検索して、表示させたいのですが、 textファイルから直接「yama-1-06.jpg」と持ってくることは可能でしょうか? もし可能であればどのようにすればできるんのでしょうか? 知恵をお貸してください! 選択画面でyama→1→06をそれぞれ選択する。 そうすれば画像表示のページで「yama-1-06.jpg」の画像を表示。 さらに「前の写真が見える」リンクの画面で、本来なら 「yama-1-05.jpg」が表示されるはずですが、textファイルにないため 「yama-1-04.jpg」が画像表示ページ内に表示されるようにしたいです。 ご教授お願いいたします。

    • 締切済み
    • PHP
  • Windowsフォトビューアーでの表示順

    エクスプローラーでjpgファイルを日付順でソートしたにも関わらず、Windowsフォトビューアーで見ると日付順ではなくファイル名順で表示されます。 OSはWindows8.1からアップデートしたWindows10です。 どのようにしたら日付順で表示できるのでしょうか? よろしくお願い致します。

  • VBAによる時系列順のコピぺ

    複数のデータがあり、元データはCSV形式なんですが、今までメモ帳として開き時系列順にコピペしていました。 1ファイルにつき1日分で10年分以上あるファイルもあります。 例えば「20090102(.csv)」、「20090104(.csv)」・・・、というようにファイル名が続きます。 「20090102(.csv)」の「2009」は年、「01」は月、「02」は日を表します。 これをExcelのVBAで時系列順にコピペしたいのですが、VBA初心者のため全く分からないのですが可能でしょうか? 条件、あるいは、規則としましては、 ・CSVファイルとして開いてしまうとデータの内容が変わってしまうため、テキストファイル(.txt)として開き、一番下(画像の下のテキストファイルの赤い四角枠部分)に次のデータを時系列順にコピペする。 ・元のデータのファイル名は上記のように「20090102(.csv)」であれば、「2009」(年)、「01」(月:2桁表示)、「02」(日:2桁表示)の表示順なのですが、必ずしも2009年から始まっているわけではなく、2001年の場合もあれば、2005年など異なる。 ・元のデータである各ファイルは「20090102(.csv)」、「20090104(.csv)」のように時系列順なのですが、日付が飛ぶことがある(1月2日、1月4のように)。 ・元のデータが格納されているフォルダを自由に変えられる。 画像の上が元のデータで、下がテキストファイルとして開いたときの内容です。 可能ならば、そのプログラムを教えてください。 Excel2010です。 回答よろしくお願いします。

  • テキストデータと画像を一つのファイルにまとめる?

    「テキストデータと画像を一つのファイルにまとめよ」との指示を受けたのですが、可能なんでしょうか?「一つのフォルダにまとめる」のなら分かるのですが…。 「テキストとjpgデータで納品せよ」とも言われました。テキストデータと画像を一つのファイルにまとめる方法があれば、ぜひご教授ください。困っていますので、どうぞよろしくお願いいたします。

  • 名前をつけて画像を保存した場合に、保存先のフォルダ内のファイル名がバラ

    名前をつけて画像を保存した場合に、保存先のフォルダ内のファイル名がバラバラになって表示されてしまいます。 先日までは、名前をつけて画像を保存した場合に保存先のフォルダ内のファイル名が順番に整列されて表示されていたのですが、現在ファイル名が順不同になってバラバラで表示されてしまいます。 例 データ1 データ5   データ2 データ6    データ3 データ7   データ4 データ8 だったのが   データ5 データ3   データ4 データ6   データ8 データ2   データ1 データ7 のように表示されてしまいます どなたか、ファイル名が整列されて表示される方法をしってる方がいらっしゃれば、教えていただけないでしょうか。お願いします。

  • jpgを撮影日順に並び替え

    幾つかのフォルダに入ってた写真ファイルを、全て一つのフォルダに入れました。それを撮影日順に並び替え、改名したいのですが、「まとめて改名」で簡単に出来るとありましたので、インストールしたのですが、撮影日順にする方法が分かりません。日付順とありますが、どうも違うようです。ファイルはデジカメや携帯、ZAURUS、ビデオカメラキャプチャー等、色々です。この日付順というのは、ファイル作成日順だと思われますが、PCに取り込んで作成された日付順ではないでしょうか?エクスプローラで開いたファイルにマウスポイントすると、撮影日が表示されますので、撮影日データは壊れてないようですので、この撮影日順に並び替えする方法を、お教え願います。

  • 日付に基づいたファイル名を自動で表示させたい

    ライブカメラのJPG画像があります。 自動生成される画像名は、日付+連番(0602001.jpgのような)で作成されるとします。 <img src="xxxxx.jpg">で表示させたい場合、xxxxxにはJavascriptで次々と変わるファイル名を持ってくるためにはどうしたらよいでしょうか? 日付情報はJavascriptでパソコンの日付を持ってくる方法でOKです。どなたかソースを考案、もしくは参考サイトを教えていただけないでしょうか? よろしくお願いします!!

  • Thunderbirdでアカウントの表示順をどうにかして変更したい

    Thunderbird2 beta2を使っています。 アカウントの表示順を【どうにかして】変えたいと思っています。 以前に、この表示順のロジックを「教えて!goo」で質問したところ、 「アカウントの作成順」だということが分かりました。 ですが、素人考えですが、その情報もレジストリなり設定ファイルなりなにかに保存されているはずだと思います。 もちろん、自己責任で、レジストリをいじるなり、設定ファイル(プレーンテキストでもバイナリファイルでも)をいじるなりして、方法は問わないので、この表示順を変更することはできないでしょうか? なお、アカウントをつくりなおしてメールなどをコピーして・・・という泥作業は、アカウントが多数あるため、避けたいです。 どなたかおわかりの方がいらっしゃったら、教えていただければ幸いです。

  • CANON付属のEasy Photo Printについて

    CANONに付属している、Easy Photo Printという印刷ソフトに関してお聞きしたいのですが、デジカメ内の画像をインストールすると、一つのフォルダ内に画像が1000以上あると日付順に表示されません(1.「画像選択」のところで)。例えば番号「151」の次は、1511、1512、1513~1519、、の順で表示され、その次に「152」が表示されています。これはなんとかならないものなのでしょうか?ちゃんと日付順に表示されてほしいのですが・・・。ご存知の方、教えてください。

  • csvを使った画像データの保存と表示

    お世話になっております.ご教授いただけると助かります. データーベースの代わりにcsvを利用します. phpのバージョンは5を使っています. 入力用画面としてtouroku.phpを作成します. 内容は画像の説明(text)と画像データ(jpg)を指定するものです. 送信をするとcsvファイル(sample.csv)にデーターが保存されます. 画像データはPCの上にあるjpgをサーバの決められたフォルダにアップロードします. 続いてhyouzi.phpで検索を行います. sample.csvに保存されている情報から結果として説明と画像を表示します. textをcsvに保存して参照・編集はできております. 現在jpgの保存がうまくできません.このため参照・編集もできません. 参考としてtextとjpgをcsvに保存するサンプルを探しております. よろしくお願いいたします.

    • ベストアンサー
    • PHP

専門家に質問してみよう