html/textの2つのケースがあります。
My email is username@domen.com
My email is <a href="mailto:username@domen.com">username@domen.com</a>
また、のようなメールリンクを検索して<a href="email@address">email@address</a>
パターンに置き換える機能があり、動作します。しかし、テキストにすでに電子メールリンクが含まれている場合はどうなりますか。私もそれらを一致させたくありません。
function make_email_links($text)
{
return preg_replace(
array('/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)
(\\.[A-Za-z0-9-]+)*)/iex'
),
array(
"stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\">\\0</a>':'\\0'))"
),
$text
);
}
で試してみました
'/((^<a) .......... )/iex'
しかし、それは失敗しました。テキストのような電子メールリンクのみを照合し、実際の電子メールリンクは照合しない方法は?