We can, with PHP, open the txt file, manipulate and with the result obtained, insert into the database.
Database table
----------------------------------------------------------------------
ID | CODIGO | NOME | IDADE | SEXO
----------------------------------------------------------------------
Commented PHP
//Criamos uma função que irá retornar o conteúdo do arquivo.
function ler(){
//Variável arquivo armazena o nome e extensão do arquivo.
$arquivo = "arquivo.txt";
//Variável $fp armazena a conexão com o arquivo e o tipo de ação.
$fp = fopen($arquivo, "r");
//Lê o conteúdo do arquivo aberto.
$conteudo = fread($fp, filesize($arquivo));
//Fecha o arquivo.
fclose($fp);
//retorna o conteúdo.
return $conteudo;
}
//colocamos o conteudo em uma variavel
$var = ler();
//retiramos espaços, quebra de linhas e assemelhados para colocar tudo em uma linha
$var= trim($var);
$var = preg_replace(array("/\t/", "/\s{2,}/", "/\n/", "/\r/"), array("", " ", " ", " "), $var);
/****************************************************************************************
a partir daqui efetuamos algumas substituições de maneira que possamos construir o
VALUES do INSERT que deverá ser assim
('','03471','fulano','20','Masculino'),('','fulana','17','feminino'), etc........)
*****************************************************************************************/
$substituir = array(" Nome=", " Idade=", " Sexo=");
$result = str_replace($substituir, "','", $var);
$result = str_replace("]", "", $result);
$result = str_replace("[", "'),('','", $result);
$result = substr($result, 3)."')";
/****************************************************************************************/
//aqui um exemplo de insert com MySQLi
$link = new mysqli ("localhost", "USUARIO", "SENHA", "Nome_DB");
$sql = "INSERT INTO suatabela VALUES $result";
$res = mysqli_query($link,$sql);
As a test I made a loop to write more lines in the txt file
//Criamos uma função que recebe um texto como parâmetro.
function gravar($texto){
//Variável arquivo armazena o nome e extensão do arquivo.
$arquivo = "arquivo.txt";
//Variável $fp armazena a conexão com o arquivo e o tipo de ação.
$fp = fopen($arquivo, "a+");
//Escreve no arquivo aberto.
fwrite($fp, $texto);
//Fecha o arquivo.
fclose($fp);
}
for ($k = 0 ; $k < 7998; $k++){
gravar("
[03471]
Nome=fulano
Idade=20
Sexo=Masculino
[05232]
Nome=fulana
Idade=17
Sexo=feminino
[01952]
Nome=Leo
Idade=66
Sexo=Masculino");
}
and soon after I ran the file to open the txt and insert the data into the bank
Result