ブログシステムが、日の目を来る日が近づいてきた。
ほとんど全ての実装が終わり、微調整にかかった。
といっても、最後の山場である、「携帯電話でアクセス」モードは当分先。
実際対応しようと思えば、すぐにでもできるほど簡単だが、本体を変更したらそれに沿って、携帯サイトも変更しないといけないので、最後の火入れみたいなものである。
今日は、日記に書き込める機能で、HTMLタグを相当数可能にした。
対応するんが、めっちゃだるかった。
多分、だれも使わないだろうなぁ。と思いながらも、はてなダイアリーとほとんど同じ基準にした。
私も知らないタグもあったし。
ここに、対応したタグ一覧がある。
http://ymlabo.ddo.jp/~ymlab/blog/hforum/index.php?act=showmsg&thNo=21&logNo=0&msgnum=1-10
次に、はてなダイアリーで対応しているyoutube記法でもしてやるか。と思いこれにのめりこむ。
大変すぎ。
youtube記法とは、youtubeの動画の右側の方にある、箱のなかの、URLという人をコピーして、
[ここにそのURLをはりつける。:movie]
なんてことをしてあげると、ようするに、
大かっこコピーしたURLコロンmovieと記入大かっこ閉じる
してあげると、ブログにyoutubeの動画を貼り付けられるのだ。
完全に真似をすると怒られそうなので、
- movieのところを、
- youtubeとした。
コンピュータに、こういう規則をぱっと判断させるのは、至難の業。
そこで正規表現を使うことにした。
正規表現は、はっきり言って気持ち悪いほど記号の世界で、さっぱりわからんの世界。
でも、普通にプログラムを書くよりも簡単?アンド楽らしいので、勉強してみた。
やっぱりわからん。
でもちょっとうまく動くと、嬉しい。
とりあえず実装できた。
2時間あまりかけて、書いたコードがたったこれだけ。
つまり、さっきの大かっこコピーしたURLコロンyoutubeと記入大かっこ閉じる
という規則は、正規表現にすると、
/\[(http)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)(:youtube)\]/
となるのである。
記念にテレポートする猫を、開発しているWeblogシステムに貼り付けた。
http://ymlabo.ddo.jp/~ymlab/blog/index.php?type=4&year=2006&month=10&day=10
でも、たった今17分前に入ってきた情報によると、
http://gigazine.net/index.php?/news/comments/20061010_google_youtube/
/** youtube記法対策 * @param string 文字列 * @return 整形データ */ function formatYouTube( $string ) { /**{{{*/ //youtube記法 $pattern_youtube = '/\[(http)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)(:youtube)\]/'; if ( preg_match($pattern_youtube, $string, $array)) { $url = $array[1].$array[2]; $url = str_replace( "?", "/", $url); $url = str_replace( "=", "/", $url); $replace = "<object width=\"425\" height=\"350\">\n\t<param name=\"movie\" value=\"".$url."\"></param>"; $replace.= "<param name=\"wmode\" value=\"transparent\"></param>"; $replace.= "<embed src=\"".$url."\" type=\"application/x-shockwave-flash\" wmode=\"transparent\""; $replace .= " width=\"425\" height=\"350\"></embed></object>"; $string = preg_replace($pattern_youtube, $replace, $string); } else {} return $string; } /**}}}*/