メールアドレスを実際のリンクに置き換えるのに非常に役立つコードがあります。電子メール アドレスに複数のサフィックスがある場合があります (例: .co.uk と .com)。これらのシナリオごとに正規表現を作成できますが、正規表現の達人が 2 つを 1 つの式に組み合わせる方法を知っているかどうか知りたいです。もしそうなら、あなたの答えが何であり、なぜそれが機能するのかを説明していただけますか?
ここに私の現在のコードがあります -
$input = "here is a line of text, test@test.com, email@domain.com, email@domain.co.uk here";
preg_match_all('%\w+\@\w+\.\w+\.\w+%', $input, $matches);
$outmatch = Array();
if(is_array($matches[0])){
foreach($matches[0] as $match){
array_push($outmatch,$match);
}
}
$outmatch = array_unique($outmatch);
if(is_array($outmatch)){
foreach($outmatch as $outm){
$input = str_replace($outm,'<a href="mailto:' . $outm . '">' . $outm . '</a>',$input);
}
}
print $input;
2 サフィックスの式:%\w+\@\w+\.\w+\.\w+%
1 つのサフィックスの式:%\w+\@\w+\.\w+%