#!/usr/bin/env ruby # coding: utf-8 Encoding.default_external = 'utf-8' # UTF-8のCSVファイルを読むため require 'cgi' require 'csv' c = CGI.new(:accept_charset => "UTF-8") #データベース読み取り処理は全く同じ csv = CSV.read("syllabus.csv", headers: true) db = csv # あとで全データを使う場合にそなえcsv変数は温存 # 検索パターンはHTMLフォームへの入力値を取得する term = c["jiki"] whom = c["kyoi"] if term > "" # 開講時期指定に何か文字列を入れたなら ptn = Regexp.new(term) # 文字列を正規表現に変換 db = db.select {|row| ptn =~ row["開講時期"]} end if whom > "" # 担当教員指定に何か文字列を入れたなら ptn = Regexp.new(whom) # 文字列を正規表現に変換 db = db.select {|row| ptn =~ row["担当教員"]} end print("Content-type: text/html; charset=utf-8 検索結果 ") puts("

該当科目一覧

") puts("") db.each {|row| printf(<<~EOF, row["科目名"]) # ~EOFとすると先頭のインデントを除去してくれる EOF row.each {|key, value| printf("\n", key, value) } } puts("
%s
%s%s
") puts(" ")