Olá,
Hoje falarei um pouco sobre como trabalhar com arquivos no PHP.
Para trabalhar com arquivos, precisamos primeiramente abrir um arquivo ou então criá-lo (caso ainda não exista). Para abrir um arquivo, utilizamos o comando fopen(), seguido da letra que representa a opção do modo de abertura (leitura, escrita, leitura e escrita, etc).
A seguir, uma tabela com as opções do modo de abertura de arquivo:
- r - Abre somente para leitura; coloca o ponteiro do arquivo no começo do arquivo.
- r+ - Abre para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo.
- w - Abre somente para escrita; coloca o ponteiro do arquivo no começo e apaga o conteúdo do arquivo (caso tenha). Se o arquivo não existir, tenta criá-lo.
- w+ - Abre para leitura e escrita; coloca o ponteiro do arquivo no começo e apaga o conteúdo do arquivo (caso tenha). Se o arquivo não existir, tenta criá-lo.
- a - Abre somente para escrita; coloca o ponteiro do arquivo no final do arquivo. Se o arquivo não existir, tenta criá-lo.
- a+ - Abre para leitura e escrita; coloca o ponteiro do arquivo no final do arquivo. Se o arquivo não existir, tenta criá-lo.
- x - Cria e abre o arquivo somente para escrita; coloca o ponteiro no começo do arquivo. Se o arquivo já existir, a chamada a fopen() falhará, retornando FALSE e gerando um erro de nível E_WARNING. Se o arquivo não existir, tenta criá-lo.
- x+ - Cria e abre o arquivo para leitura e escrita; coloca o ponteiro no começo do arquivo. Se o arquivo já existir, a chamada a fopen() falhará, retornando FALSE e gerando um erro de nível E_WARNING. Se o arquivo não existir, tenta criá-lo.
COMO ESCREVER EM ARQUIVO
A seguir, um exemplo comentado, de como escrever em arquivo.
<?php //String a ser escrita no arquivo $string = "Escrevi no arquivo"; //Abre o arquivo no modo de escrita //Cria o arquivo se não existir ou apaga o conteúdo do arquivo (caso tenha) $handle = fopen("./arquivo.txt", "w"); //Tenta escrever uma string no arquivo //Em caso de falha, imprime uma mensagem na tela if(!fwrite($handle, $string)) { echo "Não foi possível escrever no arquivo!"; } //Fecha o arquivo fclose($handle); ?>
No exemplo acima, a variável $handler recebe o link de conexão para o arquivo aberto com o comando fopen(). O comando fwrite() é o responsável por fazer a escrita própriamente dita no arquivo, para isso, ele necessita de dois parâmetros: o link do arquivo aberto ($handler), e o texto a ser escrito.
COMO LER UM ARQUIVO
A seguir, um exemplo comentado, de como ler um arquivo.
<?php //Abre o arquivo no modo de leitura $handle = fopen("./arquivo.txt", "r"); //Inicializa a variável que armazenará o conteúdo $read = ''; //Enquanto não for final de arquivo while (!feof($handle)) { //Lê uma linha de um ponteiro no arquivo e armazena (concatenando) na variável $read $read .= fgets($handle); //Imprime na tela o que foi lido do arquivo echo $read."<br />"; } //Fecha o arquivo fclose($handle); ?>
O código acima faz basicamente o mesmo que o código de escrita, porém, com algumas pequenas diferenças, como abrir o arquivo que será lido no modo de leitura (parâmetro 'r'), e fazendo um laço até o final do arquivo (feof()) para ir lendo linha à linha o conteúdo do arquivo.
O comando fgets aceita um parâmetro adicional opcional, que é o tamanho em bytes a ser lido no arquivo, de modo que poderíamos utilzar o comando desta forma, por exemplo:
$read .= fgets($handle, 4096);
Em alguns casos, pode ser interessante determinar o tamanho em bytes a ser lido do arquivo, portanto, é sempre bom saber que existe a opção.
Existem várias outras formas de escrever e ler arquivos, e pretendo ir atualizando esta seção gradativamente.
Quando ocorrer alguma atualização, notificarei na página principal do blog.
Até a próxima!
:-)
This entry was posted on terça-feira, 13 de abril de 2010 at 11:03 and is filed under Php. You can follow any responses to this entry through the RSS 2.0. You can leave a response.
Sobre o Autor:Guilherme Oliveira trabalha com desenvolvimento de software a mais de 10 anos. É técnico em informática, bacharel em ciência da computação, especialista em engenharia de software, além de ser Oracle Certified Java Programmer 6 (OCJP 6). Suas áreas preferidas são desenvolvimento web e games.
|
- No comments yet.