我正在做的是个人信息资料。这没有什么可复杂的,但我试图从3个不同的字符串中拉出首字母,我只是想弄明白。我把我的代码的图像放了,任何信息都会很棒。我不是在找人做,只是给我一些提示并指出我的方向。
echo "<br>";
$firstName = "Harvey";
$middleName = "Joseph";
$lastName = "Glick";
$fullName = $firstName . " " . $middleName . " " . $lastName;
$initialsName = substr($fullName, 0, -9); // needs some work
$houseNumber = "110";
$street = "Jones Street";
$streetAddress = $houseNumber . " " . $street; // needs some work
答案 0 :(得分:0)
您需要在每个名称部分使用substr
,而不是将所有三个部分组合在一起。
你正在拍摄fullname
的第一个角色。这与仅使用firstname
的第一个字符相同。
粗略的例子:
$first = 'GivenName';
$mid = 'Middle';
$surname = 'Surname';
$f_initial = substr($first, 0, 1);
$m_initial = substr($mid, 0, 1);
echo $f_initial . ' ' . $m_initial . ' ' . $surname;
注意:您拥有的图片和您更新的文字不同。此
substr($fullName, 0, -9);
从字符串的右边开始,然后转到9
个字符。, 0, 1)
更近了。你也可以用正则表达式完成这个。
替代正则表达式方法:
$firstName = "Harvey";
$middleName = "Joseph";
$lastName = "Glick";
$fullName = $firstName . " " . $middleName . " " . $lastName;
echo preg_replace('/([A-Z])[a-z]+\h+/', '$1 ', $fullName);
根据更新,真实示例:https://3v4l.org/JiM7u
$firstName = "Harvey";
$middleName = "Joseph";
$lastName = "Glick";
$f_initial = substr($firstName, 0, 1);
$m_initial = substr($middleName, 0, 1);
echo $f_initial . ' ' . $m_initial . ' ' . $lastName;