Esto es mucho más fácil (después de comprobar que el correo electrónico es válida):
$email = '[email protected]';
$split = explode('@',$email);
$name = $split[0];
echo "$name"; // would echo "my.name"
para comprobar la validez, se puede hacer esto:
function isEmail($email) {
return (preg_match('/[\w\.\-][email protected][\w\.\-]+\.\[w\.]/', $email));
}
if (isEmail($email)) { ... }
En cuanto a la extracción del correo electrónico de First Last <[email protected]>
,
function returnEmail($contact) {
preg_match('\b[\w\.\-][email protected][\w\.\-]+\.\[w\.]\b', $contact, $matches);
return $matches[0];
}
Al consultar las respuestas, es posible que desee tener en cuenta que '" e \ @w "@ example.com' es, técnicamente, una dirección de correo electrónico válida. – Erik
Acabo de darme cuenta de que había más en la cadena que solo la dirección de correo electrónico. –
Puede encontrar ['s ($ str) -> beforeLast ('@')'] (https://github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L399) útil, como se encuentra en [esta biblioteca independiente] (https://github.com/delight-im/PHP-Str). – caw