我有一个输出字符串,格式如下:
Fname Lname<fname@urmail.com>
。我想从中提取电子邮件地址。我应该如何做?如果您能确保字符串格式一致,那么一个简单的正则表达式就可以解决问题:
$input = 'Fname Lname<fname@urmail.com>';
preg_match('~<(.*?)>~', $input, $output);
$email = $output[1];
mailparse_rfc822_parse_addresses()
来完成这个特定的任务,他们深入了解此主题(以及您可能遇到的问题)。$to = 'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));
array(2) {
[0] => array(3) {
["display"] => string(11) "Wez Furlong"
["address"] => string(15) "wez@example.com"
["is_group"] => bool(false)
}
[1] => array(3) {
["display"] => string(15) "doe@example.com"
["address"] => string(15) "doe@example.com"
["is_group"] => bool(false)
}
}
imap_rfc822_parse_adrlist()
和 Full name with valid email。php-imap
扩展可能已经存在,参见更新的答案。 - jensgram<?php
$text = 'Fname Lname<fname@urmail.com>';
$pieces = explode('<',$text);
$mail=substr($pieces[1],0,-1);
echo $mail;
?>
这应该打印电子邮件地址:
if (preg_match("/<\S*>/", $subject, $matches)) {
echo "E-Mail address: ".$matches[0];
}