XHTML2の見出しとセクションをごにょごにょしてXHTML1に

2008-05-25 - Hatena::Thormondで言ってたXSLTの何か。

かなりアバウトに作ってあるし、HTML出力はチェックしてない。
なぜかh要素のhref属性だけ子要素のa要素に変換する仕様。単にセクション構造以外の要素まで反映させるのが面倒なだけだったりする。h要素の処理を適当に移植すれば他の要素でも同等の処理が可能なはず。たとえば<li href="foo.html">foo</li">を並べて、まとめてリンクに変換したりとか。もっとも、HTML5が策定されそうな勢いなので実用性があまり無いのだけど。
補足すると、sample.xslのパラメータが1になっているから見出し1から始まるだけで、2や3などから始めることも可能。元のXMLソースもsection要素とh要素しか存在しないから、日記用に切り貼りしたりスクリプトで動的生成するときなどに役に立つことがあるかもしれない。

PHPプログラミング再開

しばらく放置していたPHPのほうに少し手をつけました。期間が空いたためか、気持ちにかなり余裕があります。どうやら前はだいぶ精神的に参ってたみたいですね。いまはすっかり楽な気分になったので前以上にいい調子でコーディングできそうです。
文章も案外こんな感じで再開したらすんなり書けるのかもしれない。ま、そちらはPHPのほうを片付けてからおいおい。
本格的にいじるのは明日以降から。今日はとりあえず肩慣らし程度に触ってみて情報不足に思えたのでWordPressXOOPSをダウンロード。気になるところは確認しつつふにふに作ります。

IE7の条件分岐

会社のPCにIE7入れたのでHTMLページを見てみるとIE6で大丈夫だったfloat周りに問題が出てたりする。そこでIE7にはmin-heightを指定して、heightを解釈すると上手くいかないのでIE6だけにheightを記述したスタイルシートを読ませる試み。

<!--[if IE 6]-->
<link rel="stylesheet" href="ie6.css" />
<!--[endif]-->

IE6だけじゃなくてIE7も読み込んでしまう。なぜー。
……なんてことをやってたのだけど、冷静になってみれば一行コメントが二つ並んでるだけだから当たり前。

<!--[if IE 6]>
<link rel="stylesheet" href="ie6.css" />
<![endif]-->

こうすれば良かったんですね。お馬鹿すぎる。

プログラミングPHP 第2版

PHPの書籍はそれなりに持ってるんですけど、あまり造詣の深いものは今までありませんでした。「こんな機能が欲しい」「この関数ってどう使うんだっけ?」といった即物的なことが知りたいときはそれらの本でも役に立ちます。でも関数の一歩進んだ使い方とかオーバーロードなどについてはマニュアルやネットの情報に頼らざるを得ませんでした。そこでオライリー本です。まだ昼休みにちょっと齧っただけですが、returnで配列を返り値にしたり引数を参照渡しにして直接書き換えられるなんて今まで知りませんでしたよ。後で調べてみたらどっちもちゃんとマニュアルに載ってるし自分のコードではPHP5のデフォルトが参照渡しでそれを利用してメソッド書いてた。あれ?
ちょっと失敗した感もありますが、電子データではなく実体を持った書籍としては優秀だと思うので有効活用するとします。会社ではPHP使えないけど今日みたいに昼休みの間に読めるのは便利ですからね。それに今ひとつ基礎的な部分を習得してないと実感してきてるので根を詰めてコード書くより先にこれを読破してからにしたほうが案外すんなりいくかも。まぁ家で読む気はしないから12月中旬まで時間かかるかなーという気がしないでもないですが。別に急いでないからそれでもいいか。

文字列操作がっががが

ちょっとStrings関数について詰めてたらURLをQUERY_STRINGに格納したとき#idが含まれないことで慌ててしまいました。もともと#idの部分はHTTPで渡さない仕様だったんですね。見えなくても、HTMLを出力したときちゃんと指定idのページ内リンクが働いてくれます。勉強不足。
他、文字列を取得したり置換したり位置を返したり.htaccessを書き換えたりうんぬんかんぬん。正規表現を使わずともいろんな解決方法があるのを見て、やはりPHPマニュアルには目を通すべきだなーと思った。