publicidade

Gravação de Arquivos com PHP

Quando trabalhamos com o PHP, uma das rotinas que podemos precisar implementar nos sistemas que desenvolvemos, é a manipulação de arquivos. Podemos utilizar essa rotina de diversas maneiras, como por exemplo a gravação de um arquivo de log (aquele arquivinho geralmente chamado de log.txt) ou automatizar a criação  do sitemap do nosso site (sitemap.xml) e até um simples arquivo de configurações do sistema que pode ser atualizado via interface do usuário. A necessidade de gravar arquivos surgirá em diversos momentos, então é bom se preparar. 

Neste texto vamos ver as funções  nativas do PHP para manipulação de arquivos (criação, leitura e gravação) e também um exemplo prático de aplicação. Lembrando que esse é um texto básico para quem está começando na linguagem, um ponto de partida para seu estudo. Mas com certeza essa é uma habilidade que um programador deve procurar dominar.

As funções nativas do PHP para manipulação de arquivos que serão abordadas nesse texto são: “fopen” / “fwrite” / “file_put_contents”

Gravando Dados em um Arquivo TXT:

No exemplo a seguir, nós veremos desde a abertura do arquivo até a escrita dos dados, em duas abordagens diferentes para atender a objetivos específicos.

Função fopen:

A primeira função  que vamos usar é a “fopen”, ela serve para abrir/criar um arquivo. Precisamos fornecer dois parâmetros para essa função. O primeiro parâmetro é o nome do arquivo e o segundo é o modo em que o arquivo vai ser aberto: leitura, escrita, etc. Existem vários modos, mas aqui usaremos apenas dois:

Modo “w” (Abre somente para escrita; coloca o ponteiro do arquivo no começo do arquivo e reduz o comprimento do arquivo para zero. Se o arquivo não existir, tenta criá-lo.).

Modo “a” (Abre somente para escrita; coloca o ponteiro do arquivo no final do arquivo. Se o arquivo não existir, tenta criá-lo.).

Ao usarmos o segundo parâmetro como “w”, nosso arquivo será aberto para gravação e todo o conteúdo será sobrescrito.

 $file = fopen("file.txt", "w");

Vamos considerar, a partir daqui, que nossa intenção é adicionar mais conteúdo ao arquivo, e não substituir, então usaremos o modo “a”. Desta forma ao abrir o arquivo o ponteiro será posicionado no final dele para adição de dados. 

 $file = fopen( "file.txt", "a" );

Agora precisamos de algo para gravar no nosso arquivo criado na chamada anterior, então vamos criar uma variável do tipo string para gravarmos no arquivo.

$data = "Exemplo de gravação de texto em um arquivo usando funções nativas do PHP.";

Função fwrite:

Com a função "fwrite” vamos gravar os dados da variável no arquivo “file.txt”. Você viu que em ambos os modos que estamos vendo, se o arquivo não existir, ele será criado. Você não precisa criar ele manualmente. 

fwrite( $file, $data );

Nesse momento, se tudo correu bem, os dados do arquivo já foram gravados no arquivo e ele deve esta assim:

Mas se você executar o script várias vezes para inserir mais dados, vai ver que ele fica um pouco confuso.

Se, por exemplo, estivermos gerando um arquivo de log do nosso sistema e quisermos a inserção de cada informação em uma linha, para que a leitura seja mais fácil, devemos forçar a quebra de linha cada vez que adicionarmos dados. Para isso usaremos a indicação de final de linha “\n” (Sistemas baseados no Unix utilizam “\n”, no Windows “\r\n” e no Mac “\r”). Continuando, nossa chamada de gravação ficará assim:

fwrite( $file, $data ."\n" );

E o resultado será um arquivo mais organizado visualmente.

 

Nesse exemplo, nosso script criou o arquivo file.txt, mas caso ele já existisse, a função “fopen” no modo “a”, abriria o arquivo pronto para gravação após o conteúdo já existente e, utilizando a quebra de linha no final de cada inserção teremos um resultado mais organizado. Abaixo o código completo:

$filename = "file.txt";
$data = "Exemplo de gravação de texto em um aquivo usando funções nativas do PHP.";

# Abre o arquivo para gravação sobrescrevendo os dados
//$file = fopen( $filename, "w" );

# Abre o arquivo para gravação após os dados já existentes
$file = fopen( $filename, "a" );

# Adiciona ou sobrescreve o conteudo do arquivo, dependendo de como ele foi aberto.
fwrite( $file, $data ."\n" );

# Terminado o trabalho, fechamos o arquivo.
fclose( $file );

Vale a pena investir um tempo para conhecer a fundo as técnicas de manipulação de arquivos no PHP porque em algum momento, você pode precisar.

Gravação de Arquivos com PHP

Quando trabalhamos com o PHP, uma das rotinas que podemos precisar implementar nos sistemas que desenvolvemos, é a manipulação de...

publicidade

Deixe um comentário:


Deixe seu comentário. Só serão exibidos comentários ligados ao texto do post. Links serão removidos.

Comentários: