我正在處理動態用戶輸入,它可以包含多個空格。我實際上想要處理的是用戶的名字。例如:John
John Doe
,John Doe Michael
,John Doe Michael Moore
。在第二個空格之後獲取字符串(如果有的話),然後將它們放入變量中
我有2個變量。第一個變量是名字,所以我只是將其命名爲$fname
,第二個變量是姓氏,我們將其命名爲$lname
。
我希望把任何字符串沒有空間或第一空間爲第一名稱或$fname
和第一空間的姓氏變量或$lname
後的任何部分變量,字符串的任何部分,他們之間沒有消除的空間。
所以,如果用戶給的名字,像John Doe Michael Moore
,然後我想把John
到變量$fname
和Doe Michael Moore
到變量$lname
。
這是我目前的做法:
$name = ($_POST['name']);
if(strpos($name, " ")) {
$name = explode(' ', $name);
$count = count($name);
$fname = '';
$lname = '';
for($i = 0; $i < $count; $i++) {
if($i == 0) {
$fname .= $name[$i];
} elseif($i == 1) {
$lname .= $name[$i];
} else {
$lname .= ' ' . $name[$i];
}
}
}
但我不喜歡在這種情況下使用循環。有沒有像使用正則表達式或其他東西的解決方案?
當然,''/ ^(\ w +)\ s *(。*)/''應該這樣做。 –