Trabalhando com arquivos em PHP
Apesar de termos a possibilidade de trabalhar com banco de dados em PHP, existem situações em que um simples arquivo texto resolve o problema. Tratarei aqui das várias formas de abrir, ler e gravar um arquivo usando a PHP.
[ Hits: 70.604 ]
Por: Caio Filipini em 11/11/2002
Agora que já sabemos como abrir e fechar um arquivo, precisamos conhecer as funções que manipulam esse arquivo. Primeiro, daremos uma olhada nas funções para escrita de dados de um arquivo.
fwrite(): Esta função permite escrever strings em um arquivo. Se os dados forem escritos com sucesso, fwrite() retorna o número de bytes escritos; caso contrário, retorna -1 (indicando erro). Ela tem a seguinte sintaxe:
fwrite(handle, string);
- handle: handle do arquivo onde os dados serão escritos;
- string: string a ser escrita no arquivo;
Exemplo:
<?php
$fp = fopen("./dados.txt", "w");
fwrite($fp, "Hello world!"); // grava a string "Hello world!" no arquivo
fclose($fp);
?>
fputs(): Esta função é semelhante à função fwrite() e funciona da mesma maneira.
Depois de escrevermos os dados no arquivo, precisamos ser capazes de ler os dados que acabamos de gravar. É exatamente isso o que iremos aprender agora, funções para leitura de dados de um arquivo.
fread(): Esta função permite ler strings gravadas em um arquivo. A sintaxe é a seguinte:
fread(handle, length);
- handle: handle do arquivo de onde os dados serão lidos;
- length: tamanho em bytes do buffer de leitura;
Exemplo:
<?php
$fp = fopen("./dados.txt", "r");
$text = fread($fp, 20); // lê 20 bytes do arquivo e armazena em $text
fclose($fp);
?>
fgets(): Esta função é usada na leitura de strings de um arquivo. fgets() lê "length - 1" bytes do arquivo. Se for encontrado o final da linha e o número de bytes especificados não tiver sido atingido, fgets() terminará a leitura no final da linha (ou no final do arquivo, se for o caso). Eis a sua sintaxe:
fgets(handle, length);
- handle: handle do arquivo de onde os dados serão lidos;
- length: tamanho em bytes do buffer de leitura;
Exemplo:
<?php
$fp = fopen("./dados.txt", "r");
$text = fgets($fp, 20);
fclose($fp);
?>
fgetc(): Esta função permite ler caractere por caractere de um arquivo. Seguem a sintaxe e um exemplo de utilização:
fgetc(handle);
- handle: handle do arquivo de onde os dados serão lidos;
Exemplo:
<?php
$fp = fopen("./dados.txt", "r");
do {
$char .= fgetc($fp);
} while($char);
fclose($fp);
?>
file(): Esta função lê um arquivo completo, e armazena cada linha do arquivo como um elemento de um array. Depois de ler todo o conteúdo do arquivo, file() o fecha automaticamente, não sendo necessária uma chamada a fclose(); Vejamos a sintaxe:
file(filename);
- filename: nome ou caminho completo de um arquivo.
Exemplo:
<?php
$file_lines = file("./dados.txt");
echo "Primeira linha: " . $file_lines[0];
?>
Além dessas funções para leitura e escrita, existe ainda uma função bastante útil, que testa se o final do arquivo foi atingido. É a função feof(), que tem a seguinte sintaxe:
feof(handle);
- handle: handle do arquivo;
Exemplo:
<?php
$fp = fopen("./dados.txt", "r");
while(!feof($fp)) {
$char .= fgetc($fp);
}
fclose($fp);
?>
É isso aí! Existem diversas outras funções em PHP para a manipulação de arquivo, inclusive para acesso aleatório. Porém, o intuito deste tutorial é mostrar a base da manipulação de arquivos. Aqueles que estiverem interessados em aprender o assunto mais a fundo, há uma referência de todas as funções da linguagem PHP no manual, disponível em http://www.php.net.
Upload de imagens com criação de thumbnails em PHP
O perigo no gerenciador de uploads do PHP
Organizando fotos de camêra digital
Manipulação de arquivos com PHP
PEAGLE: Serviço Web de busca indexada em seu servidor local
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta