Vamos abordar as seguintes funções:
- fopen() - abre um arquivo
- fwrite() - escreve em um arquivo
- fclose() - fecha um arquivo
Algumas referências:
Exemplo de uma manipulação:
<?php
// Abre ou cria o arquivo exemplo1.txt
// "a" representa que o arquivo é aberto para ser escrito
$fp = fopen("exemplo1.txt", "a");
// Escreve "primeiro exemplo" no exemplo1.txt
$escreve = fwrite($fp, "primeiro exemplo");
// Fecha o arquivo
fclose($abre);
?>
Como resultado é criado um arquivo chamado
exemplo1.txt, escrito
"primeiro exemplo". Se você repetir a ação, "primeiro exemplo" será
escrito novamente no fim desse arquivo.
É importante notar que você tem diversas maneiras de abrir um arquivo,
que são representadas por letras. No exemplo acima utilizamos o modo "a",
veja abaixo a lista de todos os modos e suas descrições:
- 'r' - abre somente para leitura; coloca o ponteiro no começo
do arquivo.
- 'r+' - abre para leitura e gravação; coloca o ponteiro no começo
do arquivo.
- 'w' - abre somente para gravação; coloca o ponteiro no começo do
arquivo e apaga o conteúdo que já foi escrito. Se o arquivo não
existir, tenta criá-lo.
- 'w+' - abre para leitura e escrita; coloca o ponteiro no início do
arquivo e apaga o conteúdo que já foi escrito. Se o arquivo não
existir, tenta criá-lo.
- 'a' - abre o arquivo somente para escrita; coloca o ponteiro no
fim do arquivo. Se o arquivo não existir, tenta criá-lo.
- 'a+' - abre o arquivo para leitura e gravação; coloca o ponteiro
no fim do arquivo. Se o arquivo não existir, tenta criá-lo.
Com estas três funções você pode criar, escrever e fechar um arquivo
facilmente. Lembrando que você também pode usar a função
fputs()
(
http://www.php.net/manual/pt_BR/function.fputs.php) para escrever em um arquivo.
Funções extra:
Primeiro vamos criar um formulário simples para o usuário cadastrar seus
dados, que pode ser chamado de
form.html:
CADASTRO:
<form method="POST" action="cadastra.php">
Nome: <input type="text" size="10" name="nome"><br>
E-mail: <input type="text" size="10" name="email"><br>
Endereço: <input type="text" size="10" name="endereco"><br>
Telefone: <input type="text" size="10" name="telefone"><br>
<br><input type="submit" value="cadastrar">
</form>
Este formulário passará as variáveis nome, email,
endereco e telefone, que serão cadastradas em seu respectivo
arquivo de texto. A ação do formulário está como cadastra.php, que
será o arquivo contendo o necessário para cadastrar o usuário no arquivo.
<?php
// Verifica se todos os campos foram preenchidos
if (!$nome || !$email || !$endereco || !$telefone) {
echo "preencha todos os campos";
} else {
// Verifica se um usuário com o mesmo nome já foi cadastrado
if(!file_exists($nome . ".txt")) {
// Criamos o arquivo do usuário com w+
$cria = fopen($nome . ".txt", "w+");
// Aqui iremos declarar as informações do usuário
// São separadas por | para depois podermos recupera-las com explode
$dados .= "$nome|";
$dados .= "$email|";
$dados .= "$endereco|";
$dados .= "$telefone";
// Agora escrevemos estes dados no arquivo
$escreve = fwrite($cria,$dados);
// Fechando o arquivo
fclose($cria);
// Exibe a mensagem de usuário cadastrado
echo "usuário cadastrado com sucesso!";
} else {
// Se já houver um usuário cadastrado com o mesmo nome
echo "um usuário chamado $nome já foi cadastrado";
}
}
?>
Como você pode ver, agora estamos interagindo com funções básicas, com
as funções que vimos neste artigo. Com estes dois arquivos criados nós
já temos o envio de dados para um arquivo de texto, onde os valores são
separados por "|".
O caracter "|" será utilizado para separar os dados, com se fossem
colunas. Com a função explode poderemos separar os dados a gosto.
Por fim, criaremos um arquivo para visualizar todos os usuários
cadastrados. Estaremos usando a função readdir(), que é essencial para
quem usar sistemas desse tipo.
<?php
// Primeiro definiremos onde estão os arquivos
// ./ significa que os arquivos estão no diretório atual
$dir = "./";
// Abre o diretório $dir
$abredir = opendir($dir);
// Faz o loop para a exibição de usuários
while ($arqs = readdir($abredir)) {
// Aqui fazemos o php tirar "." e ".." que são "bugs" do readdir()
// Também faz com que só sejam abertos arquivos de texto
if ($arqs != "." && $arqs != ".." && is_file($arqs) && ereg(".txt", $arqs)) {
// Agora iremos abrir arquivo por arquivo, e exibir os dados do usuário
// Usamos o "r" pois somente queremos ler o arquivo
$abre = fopen($arqs,"r");
// Usamos fread agora para ler o arquivo
$le = fread($abre,filesize($arqs));
// Agora vem o grande truque, separamos os dados pelo "|" com explode
$dado = explode("|",$le);
// Define os registros
$nome = $dado['0'];
$email = $dado['1'];
$endereco = $dado['2'];
$telefone = $dado['3'];
// Vamos mostrar os dados que obtivemos
echo "Usuário: <b>$nome</b><br>";
echo "nome: $nome<br>";
echo "e-mail: $email<br>";
echo "endereço: $endereco<br>";
echo "telefone: $telefone<br><br>";
}
}
// Fecha o diretório
closedir($abredir);
?>
Assim é feito um simples script, com um banco de dados simulado em um
arquivo de texto. Você pode incrementar muito mais e fazer scripts mais
amplos e cada vez mais úteis!