Trabalhando com arquivos em PHP
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:
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:
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:
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:
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:
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:
É 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.
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.
Páginas:
1
2
gostei do comentario brother!
desse jeito pelo menos dá pra pensar!
os caras nao sabem o que é principiante! valeu mesmo.
www.andartes.com
.
desse jeito pelo menos dá pra pensar!
os caras nao sabem o que é principiante! valeu mesmo.
www.andartes.com
.
29/03/2006 4:41pm
(~18 anos atrás)
Como faço pra deletar um arquivo do servidor? por exemplo, quando eu deleto uma noticia, sua imagem for junto?
29/08/2005 10:26am
(~19 anos atrás)
Seguinte amigo.. eu necessito de ler um nome de uma arquivo de texto.. pois no nome dele eh me passado alguns parametros...
ex.:
o nome do arquivo eh...
0002W01206599814578.txt
o 002 eh a ID
o W um codigo de comfimação
o 012 codigo do cliente
e o 06599814578 eh o telefone dele...
como faço pra ler o nome do arquivo e separar estes dados em variaveis.. e no conteudo do arquivo tem uma mensagem de duas linhas.. mas issu eu consegui ler e escrever usando o "file()" e separando a array..
por favor se naum entendeu miha explicação me adicione no Skype ou MSN pra poder me ajudar...
Skype: joaopaulodatalab
MSN: joaopaulopaixao@hotmail.com
desde jah obrigado
JP
ex.:
o nome do arquivo eh...
0002W01206599814578.txt
o 002 eh a ID
o W um codigo de comfimação
o 012 codigo do cliente
e o 06599814578 eh o telefone dele...
como faço pra ler o nome do arquivo e separar estes dados em variaveis.. e no conteudo do arquivo tem uma mensagem de duas linhas.. mas issu eu consegui ler e escrever usando o "file()" e separando a array..
por favor se naum entendeu miha explicação me adicione no Skype ou MSN pra poder me ajudar...
Skype: joaopaulodatalab
MSN: joaopaulopaixao@hotmail.com
desde jah obrigado
JP
22/04/2005 10:49am
(~19 anos atrás)
Sei que é banal, mas não estou conseguindo aplicar quebras de linha, como faço?
Já tentei \n chr(13), nada dá certo, imprimem o caracter ao inves de quebrar a linha.
Já tentei \n chr(13), nada dá certo, imprimem o caracter ao inves de quebrar a linha.
16/09/2004 2:30pm
(~20 anos atrás)
Já tentou usar "\n" pra quebrar a linha? Eu creio que funcione...
Quanto à manter o conteúdo na escrita, isso depende do modo de abertura do arquivo. Pra apagar o conteúdo do arquivo e gravar tudo de novo, vc deve usar o modo "w". Ex:
$fp = fopen("arquivo.dat", "w");
Valeu!
Caio Filipini
Quanto à manter o conteúdo na escrita, isso depende do modo de abertura do arquivo. Pra apagar o conteúdo do arquivo e gravar tudo de novo, vc deve usar o modo "w". Ex:
$fp = fopen("arquivo.dat", "w");
Valeu!
Caio Filipini
08/11/2002 11:42am
(~22 anos atrás)
todo e qualquer script que tem essas funçoes da essa porra de erro Warning: fopen("contador.dat", "w") - Permission denied in /DISK2/WWW/pcbanner.com/passamar/easy/admin/functions.php on line 61
Warning: fputs(): supplied argument is not a valid File-Handle resource in /DISK2/WWW/pcbanner.com/passamar/easy/admin/functions.php on line 62
Warning: fclose(): supplied argument is not a valid File-Handle resource in /DISK2/WWW/pcbanner.com/passamar/easy/admin/functions.php on line 63
E nem é chmod pq não tem pra dar, por exemplo no fusion news que a instalação é automatica da esse erro tbm
Warning: fputs(): supplied argument is not a valid File-Handle resource in /DISK2/WWW/pcbanner.com/passamar/easy/admin/functions.php on line 62
Warning: fclose(): supplied argument is not a valid File-Handle resource in /DISK2/WWW/pcbanner.com/passamar/easy/admin/functions.php on line 63
E nem é chmod pq não tem pra dar, por exemplo no fusion news que a instalação é automatica da esse erro tbm
29/09/2002 10:09pm
(~22 anos atrás)
Lyma,
Obrigado pelo comentário. Você está coberto de razão. É que demonstrei alguns exemplos bastante simples, e não me preocupei com isso. Mas obrigado pelo complemento.
[]'s
Caio Filipini
Obrigado pelo comentário. Você está coberto de razão. É que demonstrei alguns exemplos bastante simples, e não me preocupei com isso. Mas obrigado pelo complemento.
[]'s
Caio Filipini
25/09/2002 10:12am
(~22 anos atrás)
Olá!
Excelente artigo Caio!
Gostaria de salientar somente o fator segurança.
Já vi em alguns scripts o parametro do nome de arquivo a ser lido/exibido/manipulado vir de um form ou explícito no link... este tipo de procedimento pode deixar o sistema vulnerável a ataques pois seria possível induzir a leitura de uma arquivo arbitrário (que tal o /etc/passwd?) comprometendo o servidor.
Tendo isto em mente, evita-se uma série de problemas.
Um grande abraço,
Lyma
http://www.lymas.com.br
Excelente artigo Caio!
Gostaria de salientar somente o fator segurança.
Já vi em alguns scripts o parametro do nome de arquivo a ser lido/exibido/manipulado vir de um form ou explícito no link... este tipo de procedimento pode deixar o sistema vulnerável a ataques pois seria possível induzir a leitura de uma arquivo arbitrário (que tal o /etc/passwd?) comprometendo o servidor.
Tendo isto em mente, evita-se uma série de problemas.
Um grande abraço,
Lyma
http://www.lymas.com.br
25/09/2002 5:52am
(~22 anos atrás)
Felipe, valeu pela ajuda!
Na verdade usei as funções que eu costumava usar em linguagem C, e acabei esquecendo de colocar algumas outras funções.
[]'s
Caio Filipini
Na verdade usei as funções que eu costumava usar em linguagem C, e acabei esquecendo de colocar algumas outras funções.
[]'s
Caio Filipini
24/09/2002 10:23pm
(~22 anos atrás)
$fp = fopen('teste.txt', 'r');
ta dando o seguinte error:PHP has encountered an Access Violation at 010173CD, se for uma coisa simples vaum me desculpando pela ignorancia..valew