如何从长字符串中获取电子邮件地址

2022-08-30 15:26:30

在PHP中,我有一个这样的字符串:

$string = "user@domain.com MIME-Version: bla bla bla";

如何仅获取电子邮件地址?有没有简单的方法来获得价值??


答案 1

基于mandaleeka的答案,使用空间分界仪将字符串断开,然后使用filter_var进行消毒,然后验证以查看剩余的是否是合法的电子邮件地址:

function extract_email_address ($string) {
    foreach(preg_split('/\s/', $string) as $token) {
        $email = filter_var(filter_var($token, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
        if ($email !== false) {
            $emails[] = $email;
        }
    }
    return $emails;
}

答案 2

如果不确定空格分隔字符串的哪个部分是电子邮件地址,则可以按空格拆分字符串,并使用

filter_var($email, FILTER_VALIDATE_EMAIL)

在每个子字符串上。


推荐