Lição 16: Escrever em arquivos de texto

Na lição anterior aprendemos a ler um arquivo de texto com PHP. Nesta lição veremos como escrever em um arquivo de texto com PHP.

Os dois métodos são bem semelhantes, mas existe uma diferença importante: Você tem que ter permissão para escrever no arquivo. Isto significa que o arquivo tem que estar localizado em um diretório ao qual você tenha permissão de acesso para escrever.

Se você está trabalhando localmente em seu computador, poderá você mesmo configurar as permissões: dê um clique com o botão direito do mouse na pasta do diretório e escolha "Properties". Na maioria dos servidores de hospedagem existe por padrão um diretório com permissão de escrita. Em geral tais diretórios são nomeados como "cgi-bin", "log", "databases" oo algo similar. Se o seu servidor de hospedagem permitir você também poderá configurar permissões. Geralmente basta que, no seu cliente FTP, você clique com o botão do mouse na pasta e escolha "properties" ou "permissions" ou algo similar. Na figura a seguir mostramos como configurar permissões no FileZilla.

FileZilla

Se precisar de mais informações leia a documentação de suporte do seu servidor de hospedagem.

Convém notar que é arquivo de texto no qual se pretende escrever que deve estar localizado no diretório com permissão de escrita e não o arquivo PHP.

Abrir um arquivo de texto para escrever

Tal como fizemos para ler um arquivo de texto usaremos a função documentaçãofopen para escrever, mas agora configurada para o modo "w" (writing - escrever) ou "a" (appending - adicionar).

A diferença entre os modos writing e appending é a posição do 'cursor' para escrever - se no começo ou no fim do arquivo respectivamente.

Nos exemplos desta lição usaremos um arquivo vazio denominado textfile.txt, mas se você preferir pode usar seu próprio arquivo.

Vamos começar abrindo o arquivo de texto:


	<?php

	// Abre o arquivo de texto
	$f = fopen("textfile.txt", "w");

	// Fecha o arquivo de texto
	fclose($f);

	?>
	
	

Exemplo 1: Escrever uma linha no arquivo de texto

Para escrever uma linha usamos a função documentaçãofwrite como mostrado a seguir:


	<html>

	<head>
	<title>Escrever em um arquivo de texto</title>
	</head>
	<body>
	
	<?php

	// Abre o arquivo de texto
	$f = fopen("textfile.txt", "w");

	// Escreve no arquivo de texto
	fwrite($f, "PHP is fun!"); 

	// Fecha o arquivo de texto
	fclose($f);

	// Abre o arquivo e lê a linha
	$f = fopen("textfile.txt", "r");
	echo fgets($f); 

	fclose($f);

	?>

	</body>
	</html>
	
	

Uma vez aberto o arquivo no modo writing a nova linha é escrita na parte superior do arquivo é sobrescreve a primeira linha do arquivo. Se abrirmos o arquivo no modo appending a nova linha é escrita na parte inferior do arquivo acresentando mais uma linha no arquivo.

Exemplo 2: Escrever um bloco de texto em um arquivo de texto

É possível escrever um bloco de texto inteiro em vez de uma só linha como mostrado a seguir:


	<html>
	<head>
	<title>Escrever em um arquivo de texto</title>
	</head>
	<body>

	<?php

	// Abre o arquivo de texto
	$f = fopen("textfile.txt", "w");

	// Escreve um texto
	fwrite($f, $_POST["textblock"]); 

	// Fecha o arquivo de texto
	fclose($f);

	// Abre o arquivo e lê a linha
	$f = fopen("textfile.txt", "r");

	// Lê o texto
	echo fgets($f); 
	fclose($f);

	?>
	
	</body>

	</html>
	
	

Na próxima lição veremos outra forma de armazenagem de dados: Banco de Dados.



<< Lição 15: Ler arquivos de texto

Lição 17: Banco de Dados >>