CGIな日々
2004/08 4th 00p
2005/01 4th 02p
1/29 【10日でおぼえるPerl/CGI入門教室】を図書館で借りてくる。少々ふざけた本だが、Cかjavaをかじっていれば半日で読める。
▼perlのキーワード
ヒアドキュメント, $変数 @配列 %ハッシュ{} 連想配列 スカラー リスト 行入力演算子 短絡実行 ファイルポインタ 「.」演算子 /デリミタ/ 正規表現 メタ文字「.」 eq ne tr/// s/// qq() sub 関数名{...exit;} my $_ @_ 状態遷移図 seek() substr() split() print() printf() sprintf() open() close() die() flock() foreach(){} chr() hex() require() crypt() %ENV HTTP_REFERER HTTP_USER_AGENT REMOTE_ADDR REMOTE_HOST REQUEST_METHOD SCRIPT_NAME time localtime ファイルテスト演算子 -e -z -s -f -d
2005/02 1th 01p
2/1 日記のCGI化を試みるが、難航する、特に仕様。CGIにすると、http鯖なしでは動作確認ができない、というメンテナンス性の問題が出てくる。なので今のデータ構造(html)を維持したまま、perlでこねくり回して情報を抽出しないといけない(ことにする)。
欲しい機能は、任意の月を表示する、任意の週を表示する、任意の段落を表示する、キーワードに登録された段落達を表示する、最新n週を表示する、最新記事にはコメントを入力できる、コメントを表示する、リンク元を表示する。
while(shift(@tmp) != 'parag'){}にはまった。この文で@tmp配列の頭から'parag'の含まれる要素までが削除できると思ったが上手く行かない。!=は数値として比較するときしか使えず、文字列はeq,neで比較するらしい。
2005/02 1th 02p
2005/02 1th 03p
2/3 最新n週の表示が難しい。今のデータ構造だと、IDと記事とに明確な関係がないので、該当するIDの記事が存在しないことを確かめるのが難しい(?)。
最新n週を表示する関数ができた。巧い方法が思いつかないので、記事の書き出しは「<hr>\n<a 」という制約を加えた。この制約は2003年の記事で守られていないが最新n週に入らないのでダイジョブ。
2005/02 1th 05p
コメントの書き込みができた。コメントの表示ができたv。未来の記事にコメントできてしまうのは仕様ということで(笑)
ところが、iswebにアップロードしたら動かない。
2005/02 2th 04p
iswebにアップロードしたら動かないという問題の原因は改行コードにあった。改行コードは「LC+LF」で書いていたけどiswebは「LF」のみを改行コードとみなすらしい。てきとーに修正したら動いた。iswebのCGIへ他のサーバからリンクできないのは、右上の【リンク用URL】で御茶を濁したが、これではGoogleが使えない。鯖を乗り換える方向だが、先月1年分払ったばかりでもったいないから5ヵ月後をメドに。現状のperlコード
【最新】 かてごり 逆順
01 02 03 04 05 06 07 08 09 10 11 12 2003
01 02 03 04 05 06 07 08 09 10 11 12 2004
01 02 03 04 05 06 07 08 09 10 11 12 2005
01 02 03 04 05 06 07 08 09 10 11 12 2006
01 02 03 04 05 06 07 08 09 10 11 12 2007
01 02 03 04 05 06 07 08 09 10 11 12 2008
01 02 03 04 05 06 07 08 09 10 11 12 2009
01 02 03 04 05 06 07 08 09 10 11 12 2010
01 02 03 04 05 06 07 08 09 10 11 12 2011
01 02 03 04 05 06 07 08 09 10 11 12 2012
01 02 03 04 05 06 07 08 09 10 11 12 2013
01 02 03 04 05 06 07 08 09 10 11 12 2014
01 02 03 04 05 06 07 08 09 10 11 12 2015
01 02 03 04 05 06 07 08 09 10 11 12 2016
01 02 03 04 05 06 07 08 09 10 11 12 2017
01 02 03 04 05 06 07 08 09 10 11 12 2018
01 02 03 04 05 06 07 08 09 10 11 12 2019
01 02 03 04 05 06 07 08 09 10 11 12 2020
01 02 03 04 05 06 07 08 09 10 11 12 2021
01 02 03 04 05 06 07 08 09 10 11 12 2022
01 02 03 04 05 06 07 08 09 10 11 12 2023
01 02 03 04 05 06 07 08 09 10 11 2024
Copyright 2006 naru
naruken diary system