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)










