
Importar Dados Arquivo Txt
#1
Posted 07/07/2008, 23:09
EX:
Nome; idade; sexo; CI;
Nome1; idade1; sexo1; CI1;
Nome2; idade2; sexo2; CI2;
e depois de ler os dados de uma linha apagalos do arquivo
POr favor alguém já vez ou saber como fazer ? para pode me ajudar
#2
Posted 08/07/2008, 00:50
Olá boa Noite Pessoal estou com, uma duvida estou querendo criar um script em php q leia um arquivo txt, e que seus dados são separados ";" e coloque esse dados em uma tabela do mysql
EX:
Nome; idade; sexo; CI;
Nome1; idade1; sexo1; CI1;
Nome2; idade2; sexo2; CI2;
e depois de ler os dados de uma linha apagalos do arquivo
POr favor alguém já vez ou saber como fazer ? para pode me ajudar
Tenta assim
<?php
$ler=file("nomedoarquivo.txt")
foreach ($ler as $linha)
{
$explode=explode(';',$linha);
list($nome,$idade,$sexo,$ci)=$explode;
mysql_query("INSERT INTO suatabela VALUES ('$nome','$idade,'$sexo','$ci')");
}
Edição feita por: victorhb, 08/07/2008, 00:51.
#3
Posted 08/07/2008, 01:23
A primeira linha é a descrição das outras...Tenta assim
<?php
$ler=file("nomedoarquivo.txt")
foreach ($ler as $linha)
{
$explode=explode(';',$linha);
list($nome,$idade,$sexo,$ci)=$explode;
mysql_query("INSERT INTO suatabela VALUES ('$nome','$idade,'$sexo','$ci')");
}

Isso resolve:
foreach (file('csv.txt') as $line_num => $line) { if ($line_num == 0) { continue; } list($nome, $idade, $sexo, $ci) = sscanf($line, '%s;%s;%s;%s;'); // instruções de banco de dados aqui }Isso está com cara de padrão CSV. Poderia ser feito assim também (apesar do código ficar maior, seria mais semântico):
$csv_file = fopen('csv.txt', 'r'); $can_pass = false; while (($data = fgetcsv($csv_file, 0, ';')) !== false) { if (!$can_pass) { $headers = array_filter($data); $can_pass = true; } else { foreach ($headers as $id => $name) { $line[$name] = $data[$id]; } // PHP 5: $line = array_combine($headers, array_filter($data)); // instruções de banco de dados aqui - usar $line['Nome'], $line['idade'], etc. } }No futuro, com
str_getcsv()
, ficará mais prático. 
[]s

#4
Posted 08/07/2008, 03:47
A primeira linha é a descrição das outras...
Deve ser mesmo, mas isso não ficou explícito, detalhe que a gente só deu uma solução, tem o algoritmo pra apagar a linha do arquivo também.
#5
Posted 08/07/2008, 06:34
#6
Posted 08/07/2008, 06:49
[]s

#7
Posted 08/07/2008, 09:18
#8
Posted 08/07/2008, 20:32
Apagar o arquivo já não resolveria o problema? Ou o outro programa precisa que ele exista para sobrescrevê-lo?Veja bem o txt é sempre completado por outro programa, outro programa está sempre escrevendo nele entaum aquilo q eu já lir e coloquei no BD naum precisp mais ler, entaum eu quero apaga-lo
Se o arquivo pode ser apagado:
unlink('arquivo.txt');Se o arquivo deve permanecer, mas ter seu conteúdo removido:
file_put_contents('arquivo.txt', ''); // PHP 5 fwrite(fopen('arquivo.txt', 'w'), ''); // PHP 4Para varrer o diretório de arquivos de texto, você pode fazer assim:
foreach (glob('./*.txt') as $filename) { // alterar diretório conforme necessidade foreach (file($filename) as $line_num => $line) { if ($line_num == 0) { continue; } list($nome, $idade, $sexo, $ci) = sscanf($line, '%s;%s;%s;%s;'); // instruções de banco de dados aqui } }[]s

#9
Posted 09/07/2008, 00:24
LOAD DATA INFILE 'C:\\nome_da_sua_pasta\\seu_arquivo_csv.csv' INTO TABLE `nome_da_sua_tabela` FIELDS TERMINATED BY ';' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'
a unica coisa que nao vai fazer é remover a linha inserida do seu arquivo
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)