2013-06-22 3 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] : ''; 

두 번째 방법

더 나은 것, 계정 중간 이름 등을 고려하십시오.

+0

롤 ... 그건 내가 대답 – 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

멋진 대답을 받아 들일 수 있도록 13분 기다려주십시오 ... 쉬웠다 +1 – TLPNull

관련 문제