Como ler arquivo TXT com PHP e salvar no banco de dados com MySQLi
Nesta vídeo aula será apresentado como ler o arquivo TXT com PHP e salvar as informações do arquivo no banco de dados com MySQLi.
Será criado o formulário com o campo input para fazer upload do arquivo TXT.
Em seguida o arquivo PHP responsável em ler os dados do arquivo TXT e salvar no banco de dados.
Para salvar no banco de dados será apresentado como fazer conexão no banco de dados com PHP e MySQLi.
Download do código fonte desenvolvido na aula: DOWNLOAD
Modelo de arquivo a ser importado.
Cesar, cesar@celke.com.br, cesar, 123456
Kelly, kelly@celke.com.br, kelly, 123457
Jessica, jessica@celke.com.br, jessica, 123458
Primeiro será criado o formulário com HTML, incluído a propriedade ‘enctype="multipart/form-data"’ para o formulário manipular arquivos. O formulário vai possuir o campo para fazer upload do arquivo com PHP. Para este exemplo será criado o arquivo “index.php”, com o código abaixo.
<?php
session_start(); //Inicializar a sessão com PHP
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Importar TXT</title>
</head>
<body>
<!--Titulo do Formulário-->
<h1>Importar dados do arquivo TXT</h1>
<?php
//Imprimir a mensagem de sucesso no upload de dados do arquivo txt para o banco de dados com mysqli
if(isset($_SESSION['msg'])){
//Imprimir o valor da sessão
echo $_SESSION['msg'];
//Destruir a sessão com PHP
unset($_SESSION['msg']);
}
?>
<!--Formulário com PHP para fazer upload de arquivo com PHP-->
<form method="POST" action="processa.php" enctype="multipart/form-data">
<label>Arquivo</label>
<!--Campo para fazer o upload do arquivo com PHP-->
<input type="file" name="arquivo"><br><br>
<input type="submit" value="Importar">
</form>
</body>
</html>
Em seguida será criado o arquivo “processa.php” para receber os dados do formulário. Neste arquivo será incluído a conexão com o banco de dados utilizando o include_once("conexao.php");. Em seguida será recebido o arquivo recuperando o nome temporário com o qual o arquivo enviado foi armazenado no servidor, através do $_FILES['arquivo']['tmp_name'];. Após receber os dados necessário ler todo o arquivo para um array utilizando file().
Com os dados do arquivo em um array, necessário criar o foreach para ler os dados do array. Dentro do foreach, primeiro será utilizado o trim para retirar os espaços em branco no início e no final da string. Essa string tem os dados separados pela virgula, por exemplo “Cesar, cesar@celke.com.br, cesar, 123456”, tendo os dados separado pela virgula, cada virgula indica que é um dados que deve ser salvo em uma coluna, com isso será utilizado a virgula para separar um posição no array, utilizando o explode(',', $linha); e atribuindo o resultado para a variável $valor.
Em função da variável $valor ter um array, agora somente para recuperar colocar a posição do array, e atribuir para uma variável, por exemplo, $nome = $valor[0]; pegar a primeira posição do array atribuir para a variável “$nome”.
Com o valor recuperado somente criar a QUERY INSERT para inserir os dados no banco de dados utilizando o MySQLi.
Para finalizar criar a variável global em PHP $_SESSION['msg'] e atribuir a mensagem de sucesso, com personalização do CSS INLINE. Em seguida fazer o redirecionamento com PHP utilizando o header("Location: index.php"); e indicando para qual arquivo o usuário será redirecionado.
<?php
session_start();//Inicializar a sessão com PHP
//Incluir a conexao com BD
include_once("conexao.php");
//Receber os dados do formulário
$arquivo_tmp = $_FILES['arquivo']['tmp_name'];
//ler todo o arquivo para um array
$dados = file($arquivo_tmp);
//Ler os dados do array
foreach($dados as $linha){
//Retirar os espaços em branco no inicio e no final da string
$linha = trim($linha);
//Colocar em um array cada item separado pela virgula na string
$valor = explode(',', $linha);
//Recuperar o valor do array indicando qual posição do array requerido e atribuindo para um variável
$nome = $valor[0];
$email = $valor[1];
$usuario = $valor[2];
$senha = $valor[3];
//Criar a QUERY com PHP para inserir os dados no banco de dados
$result_usuario = "INSERT INTO usuarios (nome, email, usuario, senha) VALUES ('$nome', '$email', '$usuario', '$senha')";
//Executar a QUERY para inserir os registros no banco de dados com MySQLi
$resultado_usuario = mysqli_query($conn, $result_usuario);
}
//Criar a variável global com a mensagem de sucesso
$_SESSION['msg'] = "<p style='color: green;'>Carregado os dados com sucesso!</p>";
//Redirecionar o usuário com PHP para a página index.php
header("Location: index.php");
Para salvar os dados com PHP e MySQLi necessário criar a base de dados “celke”, em seguida fazer a conexão com o banco de dados utilizando o PHP e MySQLi. Para fazer a conexão será criado o arquivo “conexao.php” e colocado o código abaixo.
<?php
//Nome do servidor que está o banco de dados
$servidor = "localhost";
//Usuário do banco de dados
$usuario = "root";
//Senha do banco de dados
$senha = "";
//Nome da base de dados
$dbname = "celke";
//Criar a conexao com MySQLi
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
Com a base pronta e a conexão, necessário criar a tabela “usuarios”, com as colunas “id, nome, e-mail, usuário, senha”. Para criar pode ser executado o código abaixo no seu gerenciador de banco de dados, no exemplo está sendo utilizado o phpMyAdmin.
CREATE TABLE `usuarios` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nome` varchar(220) NOT NULL,
`email` varchar(220) NOT NULL,
`usuario` varchar(120) NOT NULL,
`senha` varchar(120) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Portanto, neste tutorial foi apresentado como ler os dados do arquivo TXT, salvar no banco de dados as informações contidas no arquivo.