Olá Sérgio
Sugiro não alterar direto no código fonte, pois sempre terá o mesmo retrabalho a cada migração de versão.
Também utilizo importação de usuário de base de dados externa e tenho um script que separa o firstname do lastname
Veja se te ajuda:
function separaNomeSobrenome($nomeCompleto){
$nomeAte = 0;
//preposição para os sobrenomes "DOS SANTOS", "DA SILVA", "DE OLIVEIRA", ETC
$preposicao = array('DE', 'DA', 'DO', 'DAS', 'DOS');
//pós nomes
$posNome = array('JR', 'JUNIOR', 'JÚNIOR', 'NETO', 'FILHO');
//tira os espaços em excesso
$nomeCompleto = trim($nomeCompleto);
//divide o nome completo pelo espaço entre um e outro
$nome = explode(' ', $nomeCompleto);
//posiciona o ponteiro no último nome ($sobrenome)
$posSobrenome = sizeof($nome)-1;
//verifica se o último nome é um pós nome (junior, neto, etc)
if( in_array($nome[$posSobrenome], $posNome) ){
//se for move o ponteiro uma posição atrás (para pegar o verdadeiro sobrenome)
$posSobrenome--;
}
//verifica se antes do sobrenome há uma preposição (do, da, dos, das, etc)
if( in_array($nome[$posSobrenome-1], $preposicao) ){
//se tiver move o ponteiro uma posição para trás, para pegar como parte do sobrenome
$posSobrenome--;
}
//pega o nome até a última posição achada como sobrenome
$primeiroNome = implode(' ', array_splice($nome, 0, $posSobrenome));
//pega o sobrenome
$sobrenome = implode(' ', $nome);
//retorna um array com o nome e sobrenome separado
$nomeCompleto = array($primeiroNome, $sobrenome);
return $nomeCompleto;
}
depois basta pegar
posição 0 (zero) do vetor e salvar em firtsname
posição 1 (um) do vetor e salvar em lastname
Até mais