忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
現代魔法(nearly equal 情報技術)を勉強中な人のメモ(チラシの裏)
/ 2024/11/21 (Thu) / 編集
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/ 2007/09/11 (Tue) / 編集
はいどうも〜 「ふと気がついたらカウンターが3000廻ってたけど自分でリロード連打したのが原因なきもする」ゆ〜すけです、なんにせよ訪れてくれたみなさんありがとうございました、そして内容薄くてごめんなさい

今日は課題置き場を更新しました、というわけで作成したPHPプログラムを公開。

課題置き場に講義の課題を公開している(という名目で学校のサーバにバックアップしている)のだが、いちいち講義ごとにHTMLファイルを作成するのがめんどうになったので作成したPHPプログラム。
設置した見た目はこんな感じ(設置例はこちら
dir_php_screenshot

PHPが使える環境で使用できます。
便利ですよ?便利かもしれません……

まずは準備、まぁようは課題がおいてあるディレクトリにCSVファイルを用意して 課題がおいてあるディレクトリと同じ階層に今回作成したプログラム(ie_dir.php)があればいいわけです。
ディレクトリ構成の例
ーー
+ie_dir.php
| - os/0readme.csv
| - os/report1.pdf


ーー

注意!!:第2階層しかみれません
つまり「os/report/report1.pdf」とかはだめです、理由は後述
0readme.csvの内容
ーー
caption,パターン認識論の課題、めちゃくちゃクヲリティ低い上に半分くらいなくしてしまった……
pat_rep1.pdf,パターン分類
pat_rep2.pdf,相違度
pat_rep3.pdf,DPマッチング
pat_rep8.pdf,識別関数
pat_rep9.pdf,パーセプトロンと学習の定理
pat_rep11.pdf,KL変換
ーー

注意!!:CSVファイルなので説明文に「,(コンマ)」と改行を使わないでください。

ie_dir.php

というわけでie_dir.phpのソースコード 、文字コードはEUCです、変更するとこはおもに2カ所あります、なるべく変更箇所が少なくなるようにしたがこの2カ所は環境依存なのでしかたない。

変更するとこその1($subject配列)
$subject = array(
 "select"=>"講義名を選択してください",
 "deg"=>"デジタルシステム設計",
 "ojt"=>"OJT(企業実習)",
 "dsp"=>"DSP",
 "hyu"=>"ヒューマンインターフェース",
 "nyu"=>"ニューラルネットワーク",
 "pat"=>"パターン認識論"
);
「"ディレクトリ名"=>"講義名"」にします
注意!!:セキュリティ上「ディレクトリ名」に「.」や「/」を含むことはできません、これはURL欄に「?sel=../../../../」とか入力されると非常にまずいことになるからです。


変更するとこその2(HTMLタグ)
echo '<html lang="ja">'."¥n";
echo '<head>'."¥n";
echo '<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">'."¥n";
echo '<META HTTP-EQUIV="Content-STYLE-Type" CONTENT="text/html">'."¥n";
echo '<LINK href="../mstyle.css" type="text/css" rel="stylesheet">'."¥n";
echo '<title>3年次前期の課題</title>'."¥n";
echo '</head>'."¥n";
echo '<body>'."¥n";
echo "<H1>3年次前期の課題</H1>"."¥n";
echo "<HR>"."¥n";

まぁ理由はいわずもがなですが、とくに三行目の文字コードには注意しましょう

select()関数

どこかのサイトで見つけた関数、でもどこのサイトだったか忘れてしまった……
作者さんごめんなさい

select($aName, $aHashOption, $aDefault = null, $aAdditional = null)

引数
$aName : name 属性の値
$aHashOption : リストのエントリ(連想配列のキーが value に、値がラベルになる)
$aDefault : 初期選択値。連想配列のキーを指定します。省略可。
$aAdditional : select タグに付ける追加属性。省略可。

返り値の例
<select name="$aNameの中身">
<option value="連想配列のキー1">値1
<option value="連想配列のキー2">値2
</select>

read_csvfile()関数

こちらは自作、たとえば与えられたCSVファイルの内容が
caption,説明文を書いてください
file1.pdf,file1.pdfですよ〜,ここは無視
file2.csv,file2.csvなのですよぅ

なら下のような連想配列を返す関数
array(3) {
  ["caption"]=>
  array(1) {
    [0]=>
    string(54) "説明文を書いてください"
  }
  ["file1.pdf"]=>
  array(2) {
    [0]=>
    string(62) "file1.pdfですよ"
    [1]=>
    string(24) "ここは無視"
  }
  ["file2.csv"]=>
  array(1) {
    [0]=>
    string(21) "file2.csvなのですよぅ"
  }
}

使用上の注意

  1. 日本語を使うなら文字コードに気をつけましょう、「ie_dir.phpの文字コード」「ie_dir.php内のmetaダグの文字コード」「0readme.csvの文字コード」は一致していなければなりません。
  2. ファイル名を「ie_dir.php」から変更するならie_dir.php内のformタグのaction属性も変更しないといけません。





てか忍者ブログがpreタグの中でもHTMLタグが認識される素敵仕様だとは知らなかった。。。

拍手[0回]

PR
忍者ブログ [PR]