2013-06-22 40 views
0

我是一個非常初學者在PHP。我想從全名中提取名字和姓氏。以下是我的代碼: -php代碼從全名提取名字和姓氏

<?php 
$str= "fname lname"; 
$len=strlen($str); 
$s=""; 
for($i=0;i<=$len;$i++) 
{ 
$sub=substr($str,$i,($i+1)); 
if($sub!=" ") 
{ 
$s=s+$sub; 
} 
else {break;} 
} 
echo $s; 
?> 

該代碼的問題是循環無限運行並導致致命錯誤。 任何幫助將不勝感激。

回答

2

這是一個快速簡單的方法。

$name = 'John Smith'; 

list($firstName, $lastName) = explode(' ', $name); 

echo $firstName; 
echo $lastName; 

但是,如果你要考慮到中間名等,

$name = 'John Mark Smith'; 
$name = explode(' ', $name); 

$firstName = $name[0]; 
$lastName = (isset($name[count($name)-1])) ? $name[count($name)-1] : ''; 

第二種方法會更好,因爲這將1名工作了。

+0

笑......這很簡單,請等待13分鐘,這樣我可以接受你的答案 – h2O

-1

這裏的一些其他答案在某些情況下會導致未定義的錯誤。我會做:

$names = explode(' ', $fullname, 2); 
$fname = array_shift($names); 
$lname = array_shift($names) or $lname = ''; 
1

例子:

<?php 
    $fullname = 'Carlos Fernandes Paddington da Costa Silva'; 
    $fullname = trim($fullname); // remove double space 
    $firstname = substr($fullname, 0, strpos($fullname, ' ')); 
    $lastname = substr($fullname, strpos($fullname, ' '), strlen($fullname)); 
?> 
+0

大答案+1 – TLPNull