Array
(
)

Problema ao importar arquivo txt para sql server

Jonas Tomazelli
   - 18 mar 2015

Boa tarde pessoal!, estou importanto um arquivo txt para mssql, mas só está importando duas linhas das 4 contidas no arquivo, não consegui encontrar aonde está o problema. Segue código para quem quiser analisar e me ajudar.
#Código<?php
//conecta banco
require '../bd/mssql.php';
// recebe dados arquivo

//nome original do arquivo
$arqNome = $_FILES['arquivoCadastro']['name'];
//pegar extensao do arquivo
$arqExt = strtolower(end(explode('.',$arqNome)));
//tipo do arquivo
$arqTipo = $_FILES['arquivoCadastro']['type'];
//nome temporario armazenado no servidor
$arqTemp = $_FILES['arquivoCadastro']['tmp_name'];
//codigo de erro retornado
$arqError = $_FILES['arquivoCadastro']['error'];
//definir novo nome baseado na data e hora
$arqNovoNome = time() . '.' . $arqExt;
if($arqError === 0){

//pasta aonde arquivo vai ser salvo
$pasta = '../imp/';

//move arquivo da pasta temporaria para a setada acima
$upload = move_uploaded_file($arqTemp,$pasta . $arqNovoNome);
if($upload === TRUE){
echo '<script type="text/javascript">window.alert("O Arquivo foi importado.");</script>';
}else{
echo '<script type="text/javascript">window.alert("Erro ao importar arquivo!!");</script>';
}
}else{
echo $arqError;
}

//******************************************************************************
//******************************************************************************
//********************TRATAMENTO ARQUIVO IMPORTADO******************************
//indica o caminho do arquivo no servidor
$arquivo = '../imp/'.$arqNovoNome;
//cria um array que receberá os dados importados do arquivo txt
$arquivoArr = array();
//aqui é enviado para função fopen o endereço do arquivo e a instrução 'r' que indica 'somente leitura' e coloca o ponteiro no começo do arquivo
$arq = fopen($arquivo, 'r');
//variável armazena o total de linhas importadas
$total_linhas_importadas = 0;
//a função feof retorna true (verdadeiro) se o ponteiro estiver no fim do arquivo aberto
//a negação do retorno de feof indicada pelo caracter "!" do lado esquerdo da função faz com
//que o laço percorra todas as linhas do arquivo até fim do arquivo (eof - end of file)
while(!feof($arq)){
//retorna a linha do ponteiro do arquivo
$conteudo = fgets($arq);
//transforma a linha do ponteiro em uma matriz de string, cada uma como substring de string formada a partir do caracter ';'
$linha = explode(';', $conteudo);
//array recebe as substring contidas na matriz carregada na variável $linha
$arquivoArr[$total_linhas_importadas] = $linha;
//incremente a variável que armazena o total de linhas importadas
$total_linhas_importadas++;
}
?>

<!-- Codificação HTML -->
<table class="table table-bordered table-condensed table-hover table-striped">
<thead>
<tr>
<th>Matricula</th>
<th>Nome</th>
<th>CPF</th>
<th>Identidade</th>
<th>Nascimento</th>
<th>Endereço</th>
<th>Bairro</th>
<th>Cidade</th>
<th>Sexo</th>
<th>Telefone</th>
<th>Status</th>
</tr>
</thead>

<tbody>
<?php
//declaraçao matriz
unset($cadastrosArr);
$contLinha = 0;
foreach($arquivoArr as $linha):
$contColuna = 0;

foreach($linha as $campo):

//verifica se variavel tem valor
if(strlen($campo) > 0){
//joga dados de cadastro para matriz
$cadastrosArr[$contLinha][$contColuna] = $campo;
}else{
$cadastrosArr[$contLinha][$contColuna] = $campo;
//joga status como 1(Erro)
$cadastrosArr[$contLinha][16] = 1;
}
$contColuna ++;//incrementa coluna
endforeach;
$contLinha ++;//incrementalinha
endforeach;
//implementaçao while para montar corpo da tabela

//conectar banco
require '../bd/mssql.php';
//zerando contadores
//$contLinha = 0;
$contColuna = 0;

for($x=0;$x <$total_linhas_importadas;$x++){
echo '<tr>';
echo '<td>'.$x.'</td>';
echo '<td>'.$cadastrosArr[$x][4].'</td>';//matricula
echo '<td>'.utf8_encode($cadastrosArr[$x][7]).'</td>';//nome
echo '<td>'.$cadastrosArr[$x][5].'</td>';//cpf
echo '<td>'.$cadastrosArr[$x][6].'</td>';//rg
echo '<td>'.$cadastrosArr[$x][8].'</td>';//nascimento
echo '<td>'.utf8_encode($cadastrosArr[$x][9]).'</td>';//endereco
echo '<td>'.utf8_encode($cadastrosArr[$x][3]).'</td>';//bairro
echo '<td>'.utf8_encode($cadastrosArr[$x][10]).'</td>';//cidade
echo '<td>'.$cadastrosArr[$x][13].'</td>';//sexo
echo '<td>'.$cadastrosArr[$x][15].'</td>';//telefone
//echo '<td>'.$cadastrosArr[$contLinha][16].'</td>';//telefone

//se mostrar erro mostra erro e não importa para banco
if($cadastrosArr[$x][16] === 1){
echo '<td><span class="label label-important">Erro</span></td>';
}else{//se nao tiver erro entao importa para o banco
echo '<td><span class="label label-success">OK</span></td>';
$sql = "INSERT INTO SRCLOGCADASTRO
(BAIRRO,CIDADE,DATAHORA,DATANASC,ENDERECO,ESTADO,IDFUNC,NOME,OPERACAO,STATUS,RESULT,DATA,CGCEMPRESA,CPF,RG,CGCEMISSOR,MATRICULA,IDLINHA1,IDLINHA2,IDLINHA3,IDLINHA4,IDLINHA5,IDLINHA6,PERMISSAOSEG,PERMISSAOTER,PERMISSAOQUA,PERMISSAOQUI,PERMISSAOSEX,PERMISSAOSAB,PERMISSAODOM,PERMISSAOFER,PERMISSAOPICO,IDPERIODOSEM,IDPERIODOSAB,IDPERIODODOM,VIAGENSPER,VIAGENSSEM,VIAGENSMES,SEXO,TELEFONE,ESTCIVIL,CEP,CREDHABITUAIS,DATABLOQ,ASSINATURASRC)
VALUES('".$cadastrosArr[$x][3]."','".$cadastrosArr[$x][10]."',GETDATE(),'".$cadastrosArr[$x][8]."','".$cadastrosArr[$x][9]."','".$cadastrosArr[$x][11]."','".$cadastrosArr[$x][4]."','".$cadastrosArr[$x][7]."',1,1,5,GETDATE(),'".$cadastrosArr[$x][0]."','".$cadastrosArr[$x][5]."','".$cadastrosArr[$x][6]."','".$cadastrosArr[$x][1]."','".$cadastrosArr[$x][4]."','','','','','','',1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,'".$cadastrosArr[$x][13]."','".$cadastrosArr[$x][15]."','".$cadastrosArr[$x][14]."','".$cadastrosArr[$x][12]."','".$cadastrosArr[$x][2]."','01/01/1980 00:00','".$cadastrosArr[$x][4]."')";

//executa sql
mssql_query($sql,$conexao);

}
echo '</tr>';
}

//fecha conexao
mssql_close($conexao);
?>
</tbody>
</table>

<?php

//imprime a quantidade de linhas importadas
echo "<br/> <b>Quantidade de Cadastros importados = ".$total_linhas_importadas."</b>";