Ler Linhas De Arquivo Txt
#1
Posted 18/01/2007, 16:59
O formato é mais ou menos este:
*11 "asadfasdf" "sdf" 123 "cidade" "asdfsadfasdf" ....
"76 "asdfasd asdf ads" "asdfds" 234 "adsf asdfa sdfasdf asdfas df" .....
Fiz o código abaixo, que abre o arquivo e faz uma primeira separação pelo *.
Em seguida lê a linha e faz a quebra pelas aspas, onde pegarei apenas os valore que devem ir para o banco. Só que o código só faz a quebra na primeira linha.
$handle = fopen ("repre.txt", "r");
$i2="0";
while (!feof ($handle)) {
$buffer = fgets($handle, 4096);
$mostra1 = explode("*",$buffer);
while($i2 < count($mostra1)){
list($campo1[$i2],$campo2[$i2],$campo3[$i2],$campo4[$i2],$campo5[$i2],$campo6[$i2],$campo7[$i2],$campo8[$i2],$campo9[$i2],$campo10[$i2],$campo11[$i2],$campo12[$i2],$campo13[$i2],$campo14[$i2],$campo15[$i2],$campo16[$i2])= explode("\"",$mostra1[$i2]);
$conteudo = "INSERT INTO (`rep_codrepr` , `rep_status` , `rep_nome` , `rep_endereco` , `rep_cidade` , `rep_telefone` , `rep_fax` , `rep_cgc` , `rep_contato` , `rep_insc_est` , `rep_obs` `rep_cep` ) VALUES ('";
$conteudo .= trim($campo1[$i2])."' , '";
$conteudo .= "1' , '";
$conteudo .= trim($campo2[$i2])."' , '";
$conteudo .= trim($campo4[$i2])."' , '";
$conteudo .= trim($campo5[$i2])."' , '";
$conteudo .= trim($campo6[$i2])."' , '";
$conteudo .= trim($campo8[$i2])."' , '";
$conteudo .= trim($campo10[$i2])."' , '";
$conteudo .= trim($campo12[$i2])."' , '";
$conteudo .= trim($campo14[$i2])."' , '";
$conteudo .= trim($campo16[$i2])."' )";
$conteudo .= "; \n";
$ix = fopen("repre_salvo.txt", "w");
fwrite($ix,$conteudo,4096);
fclose($ix);
$i2++;
} // FIM DO SEGUNDO WHILE
}
fclose ($handle);
#2
Posted 18/01/2007, 20:24
Cara, tem certeza que seu txt é assim ? Tá meio bagunçado, vc não acha? =/
Enfim, vamos tentar reduzir esse script:
<?php
$lines = file("repre.txt");
for($i=0; $i<count($lines); $i++){
$splitX = explode("*", $lines[$i]);
for($z=0; $z<count($splitX); $z++){
list($campo1[$z],$campo2[$z],$campo3[$z],$campo4[$z],$campo5[$z],$campo6[$z],$campo7[$z],$campo8[$z],$campo9[$z],$campo10[$z],$campo11[$z],$campo12[$z],$campo13[$z],$campo14[$z],$campo15[$z],$campo16[$z])= explode("\"",$splitX[$z]);
$conteudo = "INSERT INTO (`rep_codrepr` , `rep_status` , `rep_nome` , `rep_endereco` , `rep_cidade` , `rep_telefone` , `rep_fax` , `rep_cgc` , `rep_contato` , `rep_insc_est` , `rep_obs` `rep_cep` ) VALUES ('";
$conteudo .= trim($campo1[$z])."' , '";
$conteudo .= "1' , '";
$conteudo .= trim($campo2[$z])."' , '";
$conteudo .= trim($campo4[$z])."' , '";
$conteudo .= trim($campo5[$z])."' , '";
$conteudo .= trim($campo6[$z])."' , '";
$conteudo .= trim($campo8[$z])."' , '";
$conteudo .= trim($campo10[$z])."' , '";
$conteudo .= trim($campo12[$z])."' , '";
$conteudo .= trim($campo14[$z])."' , '";
$conteudo .= trim($campo16[$z])."' )";
$conteudo .= "; \n";
$handle = fopen("repre_salvo.txt", "w");
fwrite($handle,$conteudo,4096);
fclose($handle);
}
}
?>
E agora ? Lê todas as linhas ?
Abraços
ps: não testei ;D
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)