目标
我想将字符串的特殊字符< >
之间的所有电子邮件检索到电子邮件数组中
$list = '"momo rabit" <m.rabit@sfr.fr>, "youn" <youn@hotmail.fr>, "yourmail" <yourmail@gmail.com>, "yovan" <y.yovan@orange.fr>, "popol" <popol.paul@alice.fr>';
我尝试了什么
基于this answer,它应该有用。
$list = htmlspecialchars($list);
preg_match_all("/<(.*?)>/", $list, $list_step);
var_dump($list_step); // Return empty arrays
我也尝试过没有成功
答案 0 :(得分:3)
答案很简单。 htmlspecialchars
将<
和>
转换为<
和>
。所以要么改变正则表达式,要么删除该函数。
$list = '"momo rabit" <m.rabit@sfr.fr>, "youn" <youn@hotmail.fr>, "yourmail" <yourmail@gmail.com>, "yovan" <y.yovan@orange.fr>, "popol" <popol.paul@alice.fr>';
//$list = htmlspecialchars($list);
preg_match_all("/<(.*?)>/", $list, $list_step);
var_dump($list_step); // Return empty arrays
替代:
$list = '"momo rabit" <m.rabit@sfr.fr>, "youn" <youn@hotmail.fr>, "yourmail" <yourmail@gmail.com>, "yovan" <y.yovan@orange.fr>, "popol" <popol.paul@alice.fr>';
$list = htmlspecialchars($list);
preg_match_all("/<(.*?)>/", $list, $list_step);
var_dump($list_step); // Return empty arrays