[西暦・元号年]変換コードがWEBサーバーで動くようになった。
URLは http://zigzag.s223.xrea.com/suuzi_ref/ref_xsl_querry_input.html
データXMLを変更した。
属性を1つ追加して、数字参照の元号年を格納した。
あとは、元号年で検索するときのインプットデータを、数字参照に変換してデータXMLに照合するようにすれば、
西暦年が表示されるはず。
・・・・・・・・・・
php5を使えるサーバーのアカウントがついに取れた。・・・・・しばし感慨にひたる。
さっそく、ウィンドウズのローカルで動かしていた、「西暦から元号年」・「元号年から西暦」変換コードを載せて試てみた。
「西暦から元号年」はエラーなく動いたが、「元号年から西暦」は" Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /xxxx/xxxx/xxxx.php on line 57 "という、これまで見たことのないエラーがでてしまう。
S_JIS、EUCとエンコードを変えてみたがダメだったので数字参照で元号を書いて、データXMLにいれてみよう。
ちょっと、私には、大工事になりそう。
2ヶ月近くコードをさわっていないと、なにがなんだか、訳がわからなくなっている。
元号年と西暦年の互換コードを、復習のため、一行づつコードを追ってみた。
今思うと、なにも libxml を使わなくとも、PHP の配列で足りてしまうのではないか。
だだ、データが大きくなると、PHPで読み込み切れるかが問題。これはPHPというよりPCのメモリ量の問題だろう。
[データ(西暦年・元号年).xml]作成
1600~2006年と、それに対応する慶長5~平成18のリストから、データ(西暦年・元号年).xmlを作成。
互換にするため、データ(西暦年・元号年).xmlとデータ(元号年・西暦年).xmlの2種類作った。
[元号年(西暦年)検索.xsl]作成
1600以降の任意の西暦(元号)年から元号(西暦)年を検索する。
できあがったデータ(西暦年・元号年).xmlと、元号年(西暦年)検索.xslを" new DomDocument "して結果を表示する。
というごく簡単なもので、検索というより Key + Value の値を表示させるものに他ならない。
「ある文章からある語を検索する」ということが xsl で可能なのか、時間のあるときに探ってみたい。
Web暦では1年間!!
php4用はいくらでも、申し込めるのだが、もう少しかかりそうだ。
コード検証は、localhost だけになってしまうが、「試行錯誤の覚書」を再開しよう。
ここ3年ほど利用している"無料サーバーさん"が、"php5"用サーバーを新規オープンしてくれるのを待っています。
xml と php5 を使って"ポアマンズ データベース"を探って行こうと思ってます。
このところXMLを使って、西暦と元号年を相互変換するコードにかかりきりだった。
これまでは mysql で相互変換させていた。
『php5で、データとなるxmlと、検索テンプレートとなるxslを生成して、同じくphp5で、そのxmlと xslをDomDocument にして、データの値を表示させる』 というもの。
開発環境のlocalhostで完成させ、いざwebに載せてみて、思い出した。
「使用サーバーはphp4」ということを。 何度か、手直しをして upload と動作確認、と禁止事項をやってみたが、うまくいかない。 そのうちコードのデザインが狂ってきた。
(><;)・・・・・
本番と同じ開発環境の必要性を痛感した。
1906年から2005年までの100カレ・PDFを出力した。
今回は A4 で2枚に分けて表示している。 印刷はできる。 ちなみにフォント・サイズは"2px"。
うちのプリンターでは、”なんとか識別できる”という程度だ。
この『1906-2005カレンダー』よる、自分の誕生日の曜日が正しいか検証するために、グーグルしてみた。
"http://www5a.biglobe.ne.jp/~accent/kazeno/calendar/ " ココで1873年から2029年(他)までの1年ものカレンダーが見られる。
-----+++++-----+++++-----+++++-----+++++-----+++++-----+++++-----
前回と同じく、"http://foolhill.s50.xrea.com/calendar/input.html "でメールアドレスを入力してもらえば、ダウンロード・サイトをご連絡しています。
2006~2105年・100カレ(100年カレンダーの略)を基にして、1906~2005年・100カレを生成してみた。
・・が、2005年から2006年へ続けてみると、曜日がずれてしまう。2000年をうるう年にしてみても、まだ一日ずれる。
・・・・<しばし、時の経過>・・・・
原因は『2006年を基準に遡らなければいけない』。
ということは、(2006-2105)カレンダーのスタイルシートは、過去の百年間には使えない。
未来の、2106-2205には使える。(「100で割れる年は平年、400で割れる年はうるう年」の調整は必要。)
そこで、[今回の目標:1906~2005年のカレンダーを出力する] ための仕様を考えてみた。
・それぞれ7つのうるう年と平年を組み合わせた28年間を1サイクルとして表示する。
・上記要件を関数化する。
・区切りの年数は100年なので97年以降は便宜付け加える。
これで、しばらくやってみよう。