Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Freisleben

Ler arquivo Txt e Inserir dados no Banco

Recommended Posts

Bom dia Pessoal,

 

Tenho um arquivo texto que contem 3 informações numero de o.s, data, status e estas informações estão separados por ";" e gostaria de ler essas informações e inserir no banco.

 

Fiz o codigo para leitura do arquivo, porem não sei como fazer para separar essas informações do ";" e inserir no banco. Alguem poderia me dar um caminho de como fazer isso?

 

Arquivo Texto

 

2009/1234;10/01/2009;Em Homologação
2009/7777;10/01/2009;Encerrada

codigo para leitura do arquivo texto.

 

<?php

$ponteiro = fopen ("arquivo.txt", "r");

while (!feof ($ponteiro)) {
  $linha = fgets($ponteiro, 4096);
  echo $linha."<br>";
}
fclose ($ponteiro);

?>

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

há uma forma melhor: use file(). essa função põe cada linha do arquivo num índice de array. Depois, use explode() para separar as strings por ponto-e-vírgula

 

Assim, você pode fazer isso usando dois loops: um para percorrer as linhas e outra para pegar os dados do array retornado por explode

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Beraldo,

 

 

dei uma lida nas funções que você me passou e cheguei no codigo abaixo, porem não estou conseguindo fazer com que os dados se separe unitariamente para inserir cada informação no banco separadamente.

 

 

Codigo para ler arquivo txt.

 

$file = file("arquivo.txt");

foreach($file as $linhas){

$dados = explode(';',$linhas);
list($os,$data,$status)=$dados; 
echo $os;
}

Resultado da leitura

 

2009/12342009/7777

Sendo que gostaria que ficasse assim

 

2009/1234
2009/7777

Porque iria inserir o nº da os um por vez no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo $os."<br>";

Mas você pode fazer sua query dentro do laço assim:

 


$file = file("arquivo.txt");
foreach($file as $linhas){
   $dados = explode(';',$linhas);
   list($os,$data,$status)=$dados; 
   $query = mysql_query("INSERT INTO tabela (os) VALUES ('$os')");
}

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não fui claro, é que a variavel os contem a informação 2009/12342009/7777, preciso neste caso dar dois insert, pois a os é os1 = 2009/1234, os2 = 2009/7777 osN = ???/???. Não posso dar um insert na tabela com a informação 2009/12342009/7777.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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