• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:if文データの別ファイル化について)

if文データの別ファイル化について

このQ&Aのポイント
  • 質問文章からif文データの別ファイル化についての要約文1
  • 質問文章からif文データの別ファイル化についての要約文2
  • 質問文章からif文データの別ファイル化についての要約文3

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

  • ベストアンサー
  • taba
  • ベストアンサー率61% (349/567)
回答No.2

>日付をYYYYMMDD形式にして、$dateで送ります。 この部分ですか? 生年月日をHTMLからFORMで記入していただくわけでしょうか。でしたら、monthとdayのvalueを文字列で2桁にしておいて(02とか03ということですね)、単純につないでやれば大丈夫じゃないでしょうか。 $date = $year . $month . $day; うまく2桁で渡ってこないようでしたら、 $date = sprintf("%04d%02d%02d",$year,$month,$day); で書式を定義してやればいいと思います。

siritay
質問者

お礼

参考にさせていただきます。ご回答ありがとうございました。

その他の回答 (1)

  • taba
  • ベストアンサー率61% (349/567)
回答No.1

ひとつの考え方ですが、私なら日付→星座データを別ファイルにしてしまうと思います。呼ばれる頻度が多いとパフォーマンス的には苦しいかもしれませんが。 ------------------------- 19500401,みずがめ 19500402,みずがめ … 19500407,うお … ------------------------- というテキストファイルをEXCELあたりで作れば、100年分作っても3650行あまりですし、手間もそれほどかからないと思います(星座は繰り返しが多いし)。これを仮にhoroscope.txtとして。あと、日付をYYYYMMDD形式にして、$dateで送ります。  open(HORO,"./horoscope.txt"); # ディレクトリ指定は直してください   while(<HORO>) {    @temp = split(/,/,$_);    if($date=$temp[0]) { $horoscope=$temp[1]; exit; } else { next; }   } この場合、horoscope.txtの頭から読んでいき、マッチすれば抜けるので、よく利用される年代のデータをファイルの頭の方に置いておけば、多少速くなるでしょう。データベースに入れておけば、直接日付から星座を呼べるので、もっといいのでしょうが。マシンスペックが良ければ、horoscope.txtを連想配列に丸ごと入れて、$horoscope=$horo{$date};と直接呼ぶというのもありかもしれませんが、あまり差がないようにも思います。 とにかくコーディングが楽にということであれば、ひとつの案ということで。 (やや無理やりの感じがしないでもありません(苦笑))

siritay
質問者

補足

ご回答ありがとうございます。 >日付をYYYYMMDD形式にして、$dateで送ります。 お教えいただいた方法で試してみたのですが、 上記方法のソースコード記述の仕方がよくわかりません。 入力フォームhtmlで生年月日を入力してから、それを テキストデータから呼び出すにはCGI内容をどのように記述 すれば良いのでしょうか?

関連するQ&A