Início

Resposta

Quero gravar dados em um arquivo texto (txt) ao invés de usar o MySQL ou o PostgreSQL. Isso é possível?

Sim. O PHP oferece diversas funções relacionadas com o filesystem (sistema de arquivos) do sistema operacional. Veja um exemplo de gravação em um arquivo txt:


<?php
    $arquivo = "teste.txt";

    $escrever = "Este texto será escrito no arquivo";

    $fd = fopen ($arquivo, "w");   // abre o arquivo
        fwrite($fd, $escrever); 
    fclose ($fd);   // fecha o arquivo
?>


O segundo parâmetro da função fopen indica o modo de abertura do arquivo (leitura, escrita, ...). Se quisermos, por exemplo, recuperar o conteúdo escrito pelo código acima, podemos abrir o arquivo teste.txt no modo de leitura e usar a função fgets, como mostra o exemplo a seguir:


<?php
    $arquivo = "teste.txt";

    $fd = fopen ($arquivo, "r");
        $conteudo = chop(fgets($fd, 4096));
    fclose ($fd);

    echo "O conteúdo do arquivo é " . $conteudo;
?>


O livro Desenvolvendo Websites com PHP possui um capítulo dedicado exclusivamente à manipulação de arquivos no PHP. São explicados todos os modos de abertura de arquivos, assim como as funções do filesystem. O livro ainda explica em quais situações o uso de arquivos é adequado e apresenta diversos exemplos para facilitar a compreensão do assunto.