mailto記法
さっき院試の出願用書類を書き終わったのだけど, 80円切手やら成績証明書やら
いろいろ用意しないといけないので結構めんどくさい。とっとと行こう。
・・・と思ったけど, 関数1個ぐらい書いてからでもいいだろうと思ってmailto記法を実装。
mailto:cubicdaiya@gmail.comとやると, 以下のように変換。
<a href="mailto:cubicdaiya@gmail.com">cubicdaiya@gmail.com</a>
というか, はてなのmailto記法ほぼそのまんま。
とりあえず書いてみた。
private function createMailTo(){ $text = ""; $lines = explode("\n", $this->text); $reg = /^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i; foreach($lines as $line){ if(preg_match($reg, $line, $ret)){ $mail = $ret[1]; $line = preg_replace($reg, "<a href=\"mailto:$mail\">".$mail."</a>", $line); } $text .= $line."\n"; } $this->text = $text; }
追記:
しかしよく考えたら, preg_matchは最初にマッチした文字列しか返さないので
これだと同じ行に2つ以上mailto:〜って書けない。似たようなミスがリンク記法にも見つかった。
id:cubicdaiya:20060802
解決した。