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]; }