Ben şu dize var
First Last <first.last@email.com>
Ben ayıklamak istiyorum
"first.last"
regex & kullanarak e-posta dizeden PHP. Bu nasıl gitmek için?
Şimdiden teşekkürler!
Ben cevabı zaten kabul edildi biliyorum, ama bu biçimde herhangi bir geçerli e-posta adresi üzerinde çalışacak: Name <identifier@domain>
// Yes this is a valid email address
$email = 'joey <"joe@work"@example.com>';
echo substr($email, strpos($email,"<")+1, strrpos($email, "@")-strpos($email,"<")-1);
// prints: "joe@work"
Diğer yayınlanmıştır çözümlerin en geçerli e-posta adreslerinin bir dizi başarısız olur.
Bu (e-posta geçerli olduğunu kontrol ettikten sonra) çok daha kolaydır:
$email = 'my.name@domain.com';
$split = explode('@',$email);
$name = $split[0];
echo "$name"; // would echo "my.name"
Geçerliliğini kontrol etmek için bunu yapabilirsiniz:
function isEmail($email) {
return (preg_match('/[\w\.\-]+@[\w\.\-]+\.\[w\.]/', $email));
}
if (isEmail($email)) { ... }
First Last <first.last@domain.com> üzerinden e-posta ayıklamak için olduğu gibi,
function returnEmail($contact) {
preg_match('\b[\w\.\-]+@[\w\.\-]+\.\[w\.]\b', $contact, $matches);
return $matches[0];
}