Manipulação de arquivos em PHP

O acesso a arquivos é indiscutivelmente um recurso importante na maioria das linguagens, e especialmente na programação de aplicativos Web. Entre as aplicações mais práticas deste recurso temos a comunicação com sistemas remotos através de arquivos com layouts predefinidos – muito comum em sistemas de e-commerce para transações bancárias através dos arquivos de remessa e retorno. Podemos utilizar também para aplicações mais simples e corriqueiras como fóruns de discussão ou livros de visitas. O propósito deste artigo é mostrar a você como acessar arquivos e diferentes maneiras de manipulá-los.

O PHP oferece dezenas de funções capazes de trabalhar com o filesystem (sistema de arquivos) do sistema operacional. As principais operações que podemos realizar sobre um arquivo são abertura, leitura, escrita e fechamento.

Para abrir um arquivo utilizamos a função fopen:
resource fopen ( string $filename, string $mode [, int $use_include_path [, resource $context]] )

$filename = Nome do arquivo a ser aberto;
$ mode = Modo de acesso ao arquivo;
$ use_include_path = Indica se o arquivo deve ser p rocurado nos diretorios especificados na diretiva include_path do php.ini
$context = permite a definição de um contexto que consiste em um conjunto de parâmetros que modificam o comportamento do arquivo.

Exemplo:


// abre um arquivo para somente leitura
//e atribui o ponteiro a variavel $handle
$handle = fopen("c:/arquivo.txt","r");
// abre um arquivo para leitura e escrita
//e atribui o ponteiro a variavel $handle
$handle = fopen("c:/arquivo.txt","a+");

Para fechar um arquivo utilizamos a função fclose:
bool fclose(resource $handle)
$handle = variável para qual foi passado o ponteiro do arquivo em fopen
Retorna true se o arquivo foi fechado com sucesso e false se ocorreu alguma falha.

// fecha o arquivo apontado por handle
fclose($handle);

Algumas funções para leitura de arquivos:

// abre um arquivo para somente leitura e atribui o ponteiro a $handle
$handle = fopen("c:/arquivo.txt","r");

// Le TODO o conteudo de um arquivo e armazena em uma variavel
$conteudo = file_get_contents($handle);
print $conteudo;

// Le o numero de bytes especificados - neste caso 1024 bytes
$conteudo = fread($handle,1024);
print $conteudo;

// Le e imprime uma linha por vez.
// O segundo parametro se refere ao tamanho da linha a ser lido.
//Se o tamanho for omitido, le ate o fim da linha
while ($linha = fgets($handle,1024)){
print $linha;
}

// Le e imprime um caracter por vez
while(($caracter = fgetc($handle)) != false){
print $caracter;
}

// Fecha o arquivo apontado por handle
fclose($handle);

Exemplo de escrita de um arquivo:

$conteudo = "Texto a ser escrito no arquivo.";
$handle = fopen("arquivo.txt","w");
fwrite($handle,$conteudo);
fclose($handle);

Modo

Descrição

‘r’

Abre somente leitura; coloca o ponteiro do arquico no começo do arquivo.

‘r+’

Abre para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo.

‘w’

Abre para escrita somente; coloca o ponteiro do arquivo no começo do arquivo e diminui (trunca) o tamanho do arquivo para zero. Se o arquivo não existe, tenta criá-lo.

‘w+’

Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no começo e diminui (trunca) o tamanho do arquivo para zero. Se o arquivo não existe, tenta criá-lo.

‘a’

Abre para escrita somente; coloca o ponteiro do arquivo no final. Se o arquivo não existe, tenta criá-lo.

‘a+’

Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no final. Se o arquivo não existe, tenta criá-lo.

‘x’

Cria e abre o arquivo para escrita somente; coloca o ponteiro no início do arquivo. Se o arquivo já existe, a chamada a fopen() irá falhar, retornando FALSE e gerando um erro nível E_WARNING. Se o arquivo não existe, tenta criá-lo.

‘x+’

Cria e abre um arquivo para escrita e leitura; coloca o ponteiro do arquivo no início. Se o arquivo já existe, a chamada a fopen() irá falhar, retornando FALSE e gerando um erro nível E_WARNING. Se o arquivo não existe, tenta criá-lo.

http://www.couto.zuntto.com


2 Comentários on “Manipulação de arquivos em PHP”

  1. Stilts disse:

    Heya…

    Looking for something else, but very nice site….

  2. Luciano Busch disse:

    Prezado, bom dia!

    Seu tutorial é bastante esclarecedor, mas continuo tendo dúvidas em manipulação de arquivos.

    Estou tentando fazer a manipulação de arquivo usando o php em command line, mas infelizmente não estou conseguindo. Preciso de uma ajuda sua, e urgente.

    Tenho vários arquivos texto em uma pasta. Preciso vasculhar dentro destes arquivos uma determinada sequencia de caracteres, ex.: “BST”. Se encontrar tal sequência em um dos arquivo o script deverá mover este arquivo para uma determinada pasta. Assim como se encontrar outra sequencia de caracteres, ex.: “FRA”, em outro arquivo, este deverá ser movido para outra pasta.
    Esta sequencia de caracteres é única por arquivo, ou seja, em um mesmo arquivo não existem duas sequencias.

    Agradeço desde já a colaboração.


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s