Larback - Retornando conhecimento

Meu software nunca tem bugs. Ele apenas desenvolve alguns comportamentos aleatórios.

Manipulação de arquivos de texto

Primeiro, criaremos um formulário para cadastrar os dados
<!doctype html>
<html lang="pt-br">
<head>
	<title>Cadastro de usuários</title>
	<meta charset="utf-8" />
</head>
<form method="POST" action="cadastra.php"> 
Nome: <input type="text" size="10" name="nome" required><br />
E-mail: <input type="email" size="10" name="email" required ><br />
Endereço: <input type="text" size="10" name="endereco" required><br />
Telefone: <input type="text" size="10" name="telefone" required><br />
<br />
<button type="submit">Cadastrar</button>
</form> 
<!--
Vamos abordar as seguintes funções:

    fopen() - abre um arquivo
    fwrite() - escreve em um arquivo
    fclose() - fecha um arquivo 
    
A função fopen recebe dois parâmetros. O primeiro é o nome do arquivo; o segundo é a forma como abriremos este arquivo.

Existem diversas maneiras de abrir um arquivo, que são representadas por letras. 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:

    explode() - divide uma string em um vetor.
    opendir() - abre um diretorio.
    readdir() - lê os arquivos de um diretório.
    closedir() - fecha um diretório.
    file_exists() - verifica se um arquivo existe. 
    
-->
</html>

Agora pegaremos os dados enviados pelo formulário e salvaremos em um arquivo de texto
cadastro.php
<?php
	$nome = $_POST['nome'];
	$email = $_POST['email'];
	$endereco = $_POST['endereco'];
	$telefone = $_POST['telefone'];
	$dados="";
    // 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
        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";
    }

?> 



Agora vamos criar uma listagem, exibindo todos os arquivos cadastrados:
lista.php
<!doctype html>
<html lang="pt-br">
<head>
	<title>Cadastro de usuários</title>
	<meta charset="utf-8" />
</head>
<body>
<?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);
?> 
</body>
</html>


Retirado de: http://www.vivaolinux.com.br/artigo/Manipulacao-de-arquivos-com-PHP