Ir para conteúdo
führ

ler e importar txt zipado

Recommended Posts

Olá
tenho uma aplicação de controle onde envio o arquivo txt zipado para leitura e insert no bd, acontece q não estou conseguindo inserir todos as linhas do arquivo, gravando somente uma (a primeira), não consigo ver onde estou errando.
Adaptei de uma aplicação onde importo um txt, ignorando o cabeçalho e linhas em branco se existirem, isto também não estou conseguindo no arquivo zipado,
Se puderem me ajudar, agradeço.
segue código

 

/////////////////////////////////////////
$pathFile     =  $this->Ini->path_doc . "/" . {arquivo};

$zip = zip_open($pathFile);

if ($zip)
  {
  while ($zip_entry = zip_read($zip))
    {
    echo "<p>";
    echo "Name: " . zip_entry_name($zip_entry) . "<br />";

    if (zip_entry_open($zip, $zip_entry))
      {
		$contents = zip_entry_read($zip_entry);
      echo "File Contents:<br/>";
		echo $contents;
      
		//if(strlen(trim($zip_entry)) >= 0) {
		
		$dados = explode(";", $contents, 1028);
	
		$campo1 = str_replace("'","",$dados[0]); //RETIRA O ' DA COLUNA
		$campo2 = str_replace("'","",$dados[1]);
		$campo3 = str_replace("'","",$dados[2]);
		$campo4 = str_replace("'","",$dados[3]);
		$campo5 = str_replace("'","",$dados[4]);
		$campo6 = str_replace("'","",$dados[5]);
		$campo7 = str_replace("'","",$dados[6]);
		$campo8 = str_replace("'","",$dados[7]);
		$campo9 = str_replace("'","",$dados[8]);
		$campo10 = str_replace("'","",$dados[9]);
		$campo11 = str_replace("'","",$dados[10]);
		$campo12 = str_replace("'","",$dados[11]);
		$campo13 = str_replace("'","",$dados[12]);
		$campo14 = str_replace("'","",$dados[13]);
		$campo15 = str_replace("'","",$dados[14]);
		$campo16 = str_replace("'","",$dados[15]);
		$campo17 = str_replace("'","",$dados[16]);
		$campo18 = str_replace("'","",$dados[17]);
		$campo19 = str_replace("'","",$dados[18]);
			$data = $campo9; 
$dia = substr($data, 0, 2);
$mes = substr($data, 3, 2);
$ano = substr($data, 6, 4);
$campo9_gravar = $ano."-".$mes."-".$dia;
		
	$valor_bruto = floatval(str_replace(',', '.', str_replace('.', '', $campo6)));
	$total_nfe = floatval(str_replace(',', '.', str_replace('.', '', $campo17)));
	$quantidade = floatval(str_replace(',', '.', str_replace('.', '', $campo4)));
	
	echo
	$inserir = sc_exec_sql("INSERT into anual(ncm, descricao, cfop, quantidade, unidade, valor_bruto, opracao_nfe, situacao_nfe, data_nfe, ie_emitente, uf_emitente, ie_destinatario, uf_destino, modelo_df, serie_nfe, nfe, total_nfe, situacao_aim, chave_acesso, ano, cliente_id, ncm2, data_lancamento) VALUES ('$campo1', '$campo2', '$campo3', '$quantidade', '$campo5',  '$valor_bruto',  '$campo7',  '$campo8',  '$campo9_gravar',  '$campo10',  '$campo11',  '$campo12',  '$campo13',  '$campo14',  '$campo15',  '$campo16',  '$total_nfe',  '$campo18',  '$campo19','{ano}', 
	'{cliente}','$campo1', '{data_lancamento}')"); //INSERE CADA LINHA

			} // FECHA REMOÇÃO DA LINHA EM BRANCO
		//}
		
		
      
      zip_entry_close($zip_entry);
	  }
      

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá novamente está exibindo na tela todos os dados do arquivo conforme  echo $contents;, apresenta na tela a mensagem de sucesso conforme codigo q implementei

if($inserir == true){
      echo"Sucesso";}
   else{
      echo"Erro";}
}


 mas no banco de dados só insere a primeira linha do arquivo
aguardo ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por jhops
      Olá, estou começando na programação e queria a ajuda de voces.
      Estou com um desafio no curso para criar um projeto no visual studio para editar um txt usando o openfiledialog para buscar o arquivo, o caminho apareceria no txtbox  e teria um botão que ao clicar pegasse na linha 1 as colunas de 18 à 32 e alteraria para um numero fixo (ex: 123456789000000).
      Segue o print do formulario para melhor entendimento do projeto.
       
      Aguem pode me ajudar?

    • Por empirerock
      Boa tarde.
       
      Estou aprendendo a manipular arquivos txt com o PHP.
       
      Minha dúvida é a seguinte.
       
      Como faço para localizar em qual LINHA se encontra uma palavra específica?
       
      Agradeço muito quem puder me ajudar.
    • Por manolegal
      Olá amigos
      Estou tentando importar um arquivo txt, porém preciso excluir o cabeçalho, iniciando a importação dos dados pela segunda linha:
      Tentei da seguinte forma, porém não deu certo:
      $arquivo = fopen($pathFile, 'r'); if ($arquivo == false) die('Não foi possível abrir o arquivo.'); $tot_linha = count($arquivo); $i=1; while(!feof($arquivo)) { $tot_linha = count($arquivo); for($i=1; $i<$tot_linha; $i++){ $linha = fgets($arquivo); $dados = explode(";",$linha); $campo1 = $dados[0]; $campo2 = $dados[1]; $campo3 = $dados[2]; $teste = sc_exec_sql("INSERT into minha_tabela(meus_dados) VALUES ('$campo1',..........."); } $i++; } if($teste == true){ echo"Sucesso";} else{ echo"Erro";} fclose($arquivo); Desde já agradeço.
    • Por Mi7chael
      Olá pessoal.
      Estou com uma dúvida lógica, que não consigo resolver.
      Tenho um aplicativo rodando em webview, portanto, usando html/javascript.
      Quero de alguma forma armazenar preferências do usuário no próprio celular, por exemplo, cor de fundo da página, imagens já vistas etc.
      Como é algo que vai ser usado exclusivamente por cada usuário, em seu celular, não quero armazenar isso no servidor. 
      Seguindo o exemplo do fundo da página. Eu precisaria, por exemplo, de um local só pra armazenar uma variável. Ela até já pode existir, tipo, tendo um valor padrão, mas que desse pra modificar quando o usuário quisesse. 
      Já tentei usar cookies e localstorage, mas não funcionou. O localstorage não é compatível com a versão do navegador padrão.
      Alguém sabe o que eu poderia fazer? Pra mim, o ideal seria ter um arquivo txt que eu pudesse modificar. Ou um xml, algo assim.
      Desde já, obrigado.
    • Por karina pereira refacho
      Pessoal gostaria de saber como faço para gravar os resultados do codigo abaixo dividindo em diversos .txt, o script abaixo vai me gerar um arquivo de 10000 sha1 e salvar em um so arquivo, gostaria que ele me salvasse  10 arquivos .txt diferentes, ai cada arquivo txt teria 1000 sha1 ate finalizar os 10 arquivos .txt, o primeiro arquivo ficaria com o nome de 1000.txt o segundo arquivo 2000.txt o terceiro 3000.txt e assim por diante.
      segue abaixo o codigo
      <?php $temp = "\r\n"; $n=1; for ( $number = 1 ; $number <= 10000 ; ++$number ) { $variavel = hash('sha1', $number); $n++; $file = fopen("/home/robson/Documentos/novo.txt","a+"); fwrite ($file, $variavel = hash('sha1', $number).' = '.$temp ); if ($file == false) die('Não foi possível criar o arquivo.'); fclose($file); } ?> desde ja agradeço a atenção de todos tenham uma otima semana.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.