我正在尝试根据个人的名字和姓氏创建唯一的电子邮件地址。
例如,我想创建一个像
这样的电子邮件地址 来自Thomas Smith的t.smi@domain.com
或
w.bil@domain.com为William Billed
所以基本上第一个名字应该返回1个字符,我想从姓氏中取三个字符。
我试图找到一个解决方案,但似乎人们尝试类似的东西,但不完全是我想要的。
我设法得到像
这样的东西 $thename = "Peter Bonds";
$pos = stripos($thename, ' ');
$themail = substr($thename, 0, $pos + 3);
努力获得第一个名字和两个姓氏,但却很难找到针对我的具体问题的解决方案。
如果有人可以帮助解决这个问题,我将非常感激。
答案 0 :(得分:1)
使用explode
,strtolower
和substr
函数的解决方案:
$thename = "Peter Bonds";
$domain = "@domain.com";
$name_parts = explode(" ", $thename);
$theemail = strtolower($name_parts[0][0]. "." .substr($name_parts[1], 0, 3)). $domain;
print_r($theemail);
输出:
p.bon@domain.com
另一个替代方案可能是使用preg_replace
函数的单行解决方案:
$theemail = strtolower(preg_replace("/^(\w)\w+\s+(\w{3})\w*$/", "$1.$2". $domain, $thename));
print_r($theemail); // p.bon@domain.com
答案 1 :(得分:1)
您只是使用了错误的功能。试试这个
<?php
$thename = "Peter Bonds";
$pos = stripos($thename, ' ');
$themail = strtolower(substr($thename, 0, 1).'.'.substr($thename, $pos+1, 3).'@domain.com');
echo $themail;
?>