Ler arquivo txt e salvar no bd

Prezados, boa tarde.

Tem um sistema que gera vários arquivos txt durante o dia com o nome gez+data+hora isso muda de acordo com o horario (ex:gez22092015112233) preciso copiar este arquivo e salvar o mesmo no banco de dados(mysql), preciso gerar esta coleta por tempo (ex: a cada 10 minutos).

Será que os nobres colegas poderiam me ajudar e ou indicar um sistema que faça isso, desde já agradeço a atenção.

Não sei se estou correto, mas pode utilizar o Agendador de Tarefas do Windows ou Cron no Linux.
nele vc coloca para executar sua aplicação de tantos em tanto tempo.

Me desculpa se falei besteira.

Então eu não tenho a app para salvar no bd

Você pode fazer sim pelas tarefas do windows ou pelo cron
Primeiramente crie um controle ou um blank para ler as informações do txt.

Abra o diretório com open_dir, como no linkk
http://www.w3schools.com/php/func_directory_opendir.asp

Se for para pegar determinados arquivos de acordo com a hora gerada você pode colocar um if que verifica o nome do arquivo e data atual

Após isso para cada arquivo leia o conteúdo, como o link irá te orientar:
http://imasters.com.br/artigo/1134/php/php-lendo-um-arquivo-txt

Depois basta inserir no banco com sc_exec_sql

Feito isso você coloca a aplicação em:
#tarefa agendada do windows (para isso você executa o programa Chrome ou I.E. - caminho do executável - e em parâmetros coloca a url completa da sua aplicação, agende para 10 em 10 minutos.
#cron crie um nova tarefa de 10 em 10 minutos e coloque o camando: curl -s http://urlcompleta-da-app

Recomendo colocar no final de seu script um comando para fechar a tela:
echo “”;
Pois de for windows certamente a tela não fechará sozinha.

Espero ter ajudado.

Prezado Rodrigo, bom dia.

Primeiramente muito obrigado pelo apoio, com o apoio de outro colega da comunidade criamos este scrip, para ler o arquivo atraves de um campo, mas ele esta dando o erro abaixo:

Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '09.01.14 , 14:21:29 , 5 , 108 , , 00:00:2 , 2176130 , , 1 , ’ at line 1

View SQL

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

$arquivo = fopen($file , ‘r’);

if ($arquivo == false) die(‘Não foi possível abrir o arquivo.’);

$i=0;
while(!feof($arquivo)) {
$i++;
$linha = fgets($arquivo, 9999);

$data = substr($linha,0,8);
$hora = substr($linha,8,8);
$tronco = substr($linha,16,3);
$ramal = substr($linha,19,3);	
$sinalizacao = substr($linha,22,7);
$d_chamada = substr($linha,28,8);
$numero = substr($linha,38,11);
$taxacao = substr($linha,49,5);
$tipo_chamada = substr($linha,75,1);
$cod_projeto = substr($linha,76,4);
$msn = substr($linha,80,5);
$ocupacao = substr($linha,102,5);
$lcr = substr($linha,104,5);


echo "Data= ".$data." | ";
echo "Hora= ".$hora." | ";
echo "Nª Tronco= ".$tronco." | ";
echo "Ramal= ".$ramal." | ";
echo "Sinalização= ".$sinalizacao." | ";
echo "Chamada= ".$d_chamada." | ";
echo "Número= ".$numero." | ";
echo "Taxação= ".$taxacao." | ";
echo "Tipo de Chamada= ".$tipo_chamada." | ";
echo "Projeto= ".$cod_projeto." | ";
echo "MSN= ".$msn." | ";
echo "Ocupação= ".$ocupacao." | ";
echo "LCR= ".$lcr."</br>";

if(strlen($linha) > ‘1’){
sc_exec_sql(“INSERT INTO bd_tarifador tb_bilhete ($data , $hora , $tronco, $ramal , $sinalizacao , $d_chamada , $numero , $taxacao , $tipo_chamada , $cod_projeto , $msn , $ocupacao , $lcr) VALUES ($data , $hora , $tronco , $ramal , $sinalizacao , $d_chamada , $numero , $taxacao , $tipo_chamada , $cod_projeto, $msn, $ocupacao, $lcr)”);
}

Basta ajustar a query

VALUES (’$data’ , ‘$hora’ , ‘$tronco’ , ‘$ramal’ , ‘$sinalizacao’ , ‘$d_chamada’ , ‘$numero’ , ‘$taxacao’ , ‘$tipo_chamada’ , ‘$cod_projeto’, ‘$msn’, ‘$ocupacao’, ‘$lcr’)

Se tiver algum int ou float tira a ’

Boa dica em Rodrigo.

Prezado Rodrigo, boa tarde.
muito obrigado pelo apoio, agora deu certinho e ficou assim
if(strlen($linha) > ‘1’){
sc_exec_sql(INSERT INTO bd_tarifador.tb_bilhete (data, hora , tronco, ramal, sinalizacao, d_chamada ,numero , taxacao , tipo_chamada , cod_projeto, msn, ocupacao, lcr)
VALUES (’$data’,’$hora’ , ‘$tronco’, ‘$ramal’, ‘$sinalizacao’, ‘$d_chamada’ ,’$numero’ , ‘$taxacao’ , ‘$tipo_chamada’ , ‘$cod_projeto’, ‘$msn’, ‘$ocupacao’, ‘$lcr’));
}

Vou verificar a possibilidade de colocar agora na inicialização então pra ver se vai sozinho.

Prezado Rodrigo, boa tarde.
Efetuei o teste mas não funcionou, no formato que estou tentando não dá por que estou buscando o arquivo através de um controle com um campo documento.

Saberia me informar como fazer com que busque o arquivo através de um caminho.

Desde já agradeço.

.

Dá sim, se você tiver o nome do arquivo, pode pular a etapa open_dir, abra diretamente o arquivo txt, onde coloquei a parte lendo-um-arquivo-txt acima

Gostaria de agradecer o apoio, deu certinho, apaguei a primeira linha e coloquei o caminho ($arquivo = fopen(“C:\file.txt” , ‘r’);), ficando assim, com este meu script teria como apagar o arquivo não final da leitura.

Dá para apagar no final com unlink(“C:\file.txt”);

Rodrigo, bom dia.

Olha só, ainda não consegui encontrar, o arquivo continua com o inicio igual, mas o restante do nome muda toda vez.

Ex: gez220920151245
gez220920151345
gez230920150845

E assim por diante, como faço para copiar os arquivos especificando apenas o inicio do nome.

Desde já agradeço a atenção.

Utilizando a função glob

http://php.net/manual/en/function.glob.php

Willian, boa tarde.

Desde de já agradeço a sua ajuda, efetuei os testes mas não funcionou, fica rodando como se fosse gravar, mas não tem nenhum efeito, será que o Sr. poderia me ajudar.
Código:

$arquivo = glob (c:\ ge*.txt);

if ($arquivo == false) die(‘Não foi possível abrir o arquivo.’);

$i=0;
while(!feof($arquivo)) {
$i++;
$linha = fgets($arquivo, 9999);

$data = substr($linha,0,8);
$hora = substr($linha,8,8);
$tronco = substr($linha,16,3);
$ramal = substr($linha,19,3);
$sinalizacao = substr($linha,22,7);
$d_chamada = substr($linha,28,8);
$numero = substr($linha,38,11);
$taxacao = substr($linha,49,5);
$tipo_chamada = substr($linha,75,1);
$cod_projeto = substr($linha,76,4);
$msn = substr($linha,80,5);
$ocupacao = substr($linha,102,5);
$lcr = substr($linha,104,5);

echo "Data= “.$data.” | ";
echo "Hora= “.$hora.” | ";
echo "Nª Tronco= “.$tronco.” | ";
echo "Ramal= “.$ramal.” | ";
echo "Sinalização= “.$sinalizacao.” | ";
echo "Chamada= “.$d_chamada.” | ";
echo "Número= “.$numero.” | ";
echo "Taxação= “.$taxacao.” | ";
echo "Tipo de Chamada= “.$tipo_chamada.” | ";
echo "Projeto= “.$cod_projeto.” | ";
echo "MSN= “.$msn.” | ";
echo "Ocupação= “.$ocupacao.” | ";
echo “LCR= “.$lcr.””;
if(strlen($linha) > ‘1’){
sc_exec_sql(INSERT INTO bd_tarifador.tb_bilhete (data, hora , tronco, ramal, sinalizacao, d_chamada ,numero , taxacao , tipo_chamada , cod_projeto, msn, ocupacao, lcr)
VALUES (’$data’,’$hora’ , ‘$tronco’, ‘$ramal’, ‘$sinalizacao’, ‘$d_chamada’ ,’$numero’ , ‘$taxacao’ , ‘$tipo_chamada’ , ‘$cod_projeto’, ‘$msn’, ‘$ocupacao’, ‘$lcr’));
}
}
fclose ($arquivo)

eu ajudaria, mais agora to meio sem tempo. (Mas no final eu estou lê ajudando dei a faca y o queijo e só cortar)
y outra coisa tu ta usando de forma errônea o que lê foi passado sugiro ler melhor

Prezados, estou com este problema 70% resolvido, o que falta e deletar o arquivo depois de ler, utilizei o unlink conforme informado pelo mestre William, mas da esta mensagem já autorizei tudo, mas não vai. Estou rodando direto do scriptcase.

ERRO
unlink(c:\bilhetes/gez02102015154144.txt): Permission denied

caso tenham alguma outra forma agradeço a ajuda.