プログラム / 2007/09/11 (Tue) / 編集 |
はいどうも〜 「ふと気がついたらカウンターが3000廻ってたけど自分でリロード連打したのが原因なきもする」ゆ〜すけです、なんにせよ訪れてくれたみなさんありがとうございました、そして内容薄くてごめんなさい
今日は課題置き場を更新しました、というわけで作成したPHPプログラムを公開。
課題置き場に講義の課題を公開している(という名目で学校のサーバにバックアップしている)のだが、いちいち講義ごとにHTMLファイルを作成するのがめんどうになったので作成したPHPプログラム。
設置した見た目はこんな感じ(設置例はこちら)
PHPが使える環境で使用できます。
便利ですよ?便利かもしれません……
今日は課題置き場を更新しました、というわけで作成したPHPプログラムを公開。
課題置き場に講義の課題を公開している(という名目で学校のサーバにバックアップしている)のだが、いちいち講義ごとにHTMLファイルを作成するのがめんどうになったので作成したPHPプログラム。
設置した見た目はこんな感じ(設置例はこちら)
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ファイルなので説明文に「,(コンマ)」と改行を使わないでください。
変更するとこその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($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>
なら下のような連想配列を返す関数
てか忍者ブログがpreタグの中でもHTMLタグが認識される素敵仕様だとは知らなかった。。。
ディレクトリ構成の例
ーー
+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なのですよぅ" } }
使用上の注意
- 日本語を使うなら文字コードに気をつけましょう、「ie_dir.phpの文字コード」「ie_dir.php内のmetaダグの文字コード」「0readme.csvの文字コード」は一致していなければなりません。
- ファイル名を「ie_dir.php」から変更するならie_dir.php内のformタグのaction属性も変更しないといけません。
てか忍者ブログがpreタグの中でもHTMLタグが認識される素敵仕様だとは知らなかった。。。
PR
トラックバック
URL :
コメント
無題
>ファイル名を「ie_dir.php」から変更するなら
PHP中で、$_SERVER['PHP_SELF']か、もしくは乱暴に $PHP_SELF とかの変数を参照すると良いかも。かも。かも。
>忍者ブログがpreタグの中でもHTMLタグが認識される
それは忍者じゃなくてブラウザの仕様、もしくはブラウザの仕様に忍者が合わせたんだと思うYO
ttp://www.htmq.com/html/pre.shtml
PHP中で、$_SERVER['PHP_SELF']か、もしくは乱暴に $PHP_SELF とかの変数を参照すると良いかも。かも。かも。
>忍者ブログがpreタグの中でもHTMLタグが認識される
それは忍者じゃなくてブラウザの仕様、もしくはブラウザの仕様に忍者が合わせたんだと思うYO
ttp://www.htmq.com/html/pre.shtml
Re:無題
>PHP中で、$_SERVER['PHP_SELF']か、もしくは乱暴に $PHP_SELF とかの変数を参照すると良
あぁその手があったか、すっかり忘れてたよ
>それは忍者じゃなくてブラウザの仕様、もしくはブラウザの仕様に忍者が合わせたんだと思うYO
マジですか!preタグ多用してたのに今まで全く気がつかなかった……safariも意外とやってくれるっス
あぁその手があったか、すっかり忘れてたよ
>それは忍者じゃなくてブラウザの仕様、もしくはブラウザの仕様に忍者が合わせたんだと思うYO
マジですか!preタグ多用してたのに今まで全く気がつかなかった……safariも意外とやってくれるっス
無題
それから・・・
スクリーンショットの画像とIEで実際に開いた場合の違いから気になったんだけど、
cssファイルを呼び出すhtmlファイルと、呼び出されるcssファイルの文字コードが(改行コードも?)違っている場合、
IEで表示するとcssファイルが無視されるという素敵仕様となっております。
Safariとかでは問題ないのにネ… IE素敵すぎる。
スクリーンショットの画像とIEで実際に開いた場合の違いから気になったんだけど、
cssファイルを呼び出すhtmlファイルと、呼び出されるcssファイルの文字コードが(改行コードも?)違っている場合、
IEで表示するとcssファイルが無視されるという素敵仕様となっております。
Safariとかでは問題ないのにネ… IE素敵すぎる。
その発想はなかったわ〜
>スクリーンショットの画像とIEで実際に開いた場合の違いから気になったんだけど、
>cssファイルを呼び出すhtmlファイルと、呼び出されるcssファイルの文字コードが(改行コードも?)違っている場合、
>IEで表示するとcssファイルが無視されるという素敵仕様となっております。
まったく知りませんでした、ずっと不思議だったんだよ〜
cssなしでも見えやすいようにデザインするのに苦悩したというのに……
>cssファイルを呼び出すhtmlファイルと、呼び出されるcssファイルの文字コードが(改行コードも?)違っている場合、
>IEで表示するとcssファイルが無視されるという素敵仕様となっております。
まったく知りませんでした、ずっと不思議だったんだよ〜
cssなしでも見えやすいようにデザインするのに苦悩したというのに……