Detectando e-mails em um texto
Estou tentando criar uma função que traduza todas as ocorrências de um endereço de email de texto sem formatação em uma determinada string para ele htmlized version.
Digamos que eu tenha o seguinte código, ondehtmlizeEmails
é a função que estou procurando:
$str = "Send me an email to [email protected].";
echo htmlizeEmails($str); // Echoes "Send me an email to <a href="mailto:[email protected]">[email protected]</a>."
Se possível, eu gostaria que essa função usasse ofilter_var
para verificar se o email é válid
Alguém sabe como fazer isso? Obrigado
EditarObrigado pelas respostas, usei o regex do Shocker para corresponder a possíveis endereços de e-mail e, em seguida,s se ofilter_var
valida, é substituído.
function htmlizeEmails($text)
preg_match_all('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/', $text, $potentialEmails, PREG_SET_ORDER);
$potentialEmailsCount = count($potentialEmails);
for ($i = 0; $i < $potentialEmailsCount; $i++) {
if (filter_var($potentialEmails[$i][0], FILTER_VALIDATE_EMAIL)) {
$text = str_replace($potentialEmails[$i][0], '<a href="mailto:' . $potentialEmails[$i][0] .'">' . $potentialEmails[$i][0] .'</a>', $text);
}
}
}