Extraer el primer email de una cadena

Extraer el primer email de una cadena

PHP

En muchos sistemas es posible almacenar varias direcciones de email en un mismo campo, pero esto puede ser un problema si nuestro programa necesita utilizar un único email.

Además dependeremos de si el usuario ha introducido las direcciones de email correctamente.

Con la siguiente función en PHP, podremos extrar una dirección de email, la primera que se encuentre y sea válida.

/**
* Get first valid email from string.
*
* @param string $str String for extract first email address
* 
* @return string|null
*/
function getFirstEmail($str){
    preg_match_all("/[a-z0-9_\-\+\.]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i", $str, $matches);
    return (isset($matches[0][0])) ? $matches[0][0] : null;
}

$str = "@es.com, algo@asd.com; otro@gmail.com";

echo getFirstEmail($str); // algo@asd.com

Leave a reply