PHP: extract email addresses from string
2016-10-20

2018-10-20 11:23:24 PHP,E-Mail,EN

this function searches for email adresses inside a String and returns an array containing the adresses. Thanks to unicode parsing it can detect those with umlauts also.

<?php

/**
 * search for email adresses, returns them as array
 * @access public
 * @param string $sString String to search in
 * @return array $aMatch
 */
function getEmailArrayFromString($sString = '')
{
    $sPattern = '/[\._\p{L}\p{M}\p{N}-]+@[\._\p{L}\p{M}\p{N}-]+/u';
    preg_match_all(
        $sPattern,
        $sString,
        $aMatch
    );
    $aMatch = array_keys(
        array_flip(
            current($aMatch)
        )
    );

    return $aMatch;
}

// Example
$sString = 'foo@example.com XXX bar@example.com XXX <baz@example.com>';

$aEmail = getEmailArrayFromString($sString);

/**
 * array(3) {
    [0]=>
        string(15) "foo@example.com"
    [1]=>
        string(15) "bar@example.com"
    [2]=>
        string(15) "baz@example.com"
    }
*/
var_dump($aEmail);

Diese Website verwendet Cookies, um Ihnen den bestmöglichen Service zu gewährleisten. Weiterführende Informationen finden Sie in unserer Datenschutzerklärung. Klicken Sie in die nachfolgende Checkbox um Cookies zu akzeptieren. Bestätigen Sie anschließend durch Klick auf "Speichern".