Обнаружение электронных писем в тексте

Я пытаюсь создать функцию, которая переводит каждое вхождение обычного текстового адреса электронной почты в данной строке в егоhtmlized версия.

Допустим, у меня есть следующий код, гдеhtmlizeEmails это функция, которую я ищу:

$str = "Send me an email to bob@example.com.";
echo htmlizeEmails($str); // Echoes "Send me an email to <a href="mailto:bob@example.com">bob@example.com</a>."

Если возможно, я бы хотел, чтобы эта функция использовалаfilter_var&nbsp;функция, чтобы проверить, является ли электронная почта действительной.

Кто-нибудь знает как это сделать? Спасибо!

Редактировать:

Спасибо за ответы, я использовал регулярное выражение Shocker для сопоставления потенциальных адресов электронной почты, а затем,только&nbsp;еслиfilter_var&nbsp;подтверждает это, он заменяется.

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);
        }
    }
}