Trabalhando com arquivos em PHP
Ao trabalhar com arquivos, no mínimo duas operações devem ser realizadas: abrir e fechar o arquivo. Programadores que conhecem a linguagem C e já trabalharam com arquivos se sentirão em casa.
Para abrir um arquivo, precisamos utilizar a função fopen(), que tem a seguinte sintaxe:
filename: pode ser simplesmente um nome, ou um caminho completo. Exemplos: “arquivo.txt”, “./arquivo.dat”, “/data/data.txt”.
mode: especifica o modo de abertura, ou seja, se o arquivo deve ser aberto para leitura, escrita, etc. Modos de abertura:
- r: abre o arquivo no modo somente leitura e posiciona o ponteiro no início do arquivo; o arquivo já deve existir;
- r+: abre o arquivo para leitura/escrita, posiciona o ponteiro no início do arquivo;
- w: abre o arquivo no modo somente escrita; se o arquivo já existir, será sobrescrito; senão, será criado um novo;
- w+: abre o arquivo para escrita/leitura; se o arquivo já existir, será sobrescrito; senão, será criado um novo;
- a: abre o arquivo para anexar dados, posiciona o ponteiro no final do arquivo; se o arquivo não existir, será criado um novo;
- a+: abre o arquivo para anexo/leitura, posiciona o ponteiro no final do arquivo; se o arquivo não existir, será criado um novo;
Obs: Além dos modos de abertura descritos acima, um arquivo pode ser aberto como binário, especificando o modo de abertura como “b”.
use_include_path: este parâmetro é opcional; se for atribuído o valor 1, e não for especificado nenhum caminho (path) no nome do arquivo, ele será procurado no diretório especificado em include_path, no arquivo php.ini.
A função fopen() retorna um número inteiro, o indicador (handle) do arquivo. Este indicador será necessário quando formos realizar operações de leitura e escrita no arquivo, indicando qual arquivo iremos manipular. Portanto, para abrir um arquivo usamos a seguinte instrução:
Aqui estamos abrindo um arquivo já existente no modo somente leitura, e atribuindo o valor retornado por fopen() à variável $fp. $fp conterá um número inteiro positivo (o handle do arquivo) se a operação tiver sucesso; caso contrário, conterá zero.
Depois de utilizar o arquivo, é necessário que ele seja fechado. Para tanto utilizamos a função fclose():
No caso do arquivo que abrirmos no exemplo anterior, teríamos a seguinte instrução:
Para abrir um arquivo, precisamos utilizar a função fopen(), que tem a seguinte sintaxe:
fopen(filename, mode, [use_include_path]);
filename: pode ser simplesmente um nome, ou um caminho completo. Exemplos: “arquivo.txt”, “./arquivo.dat”, “/data/data.txt”.
mode: especifica o modo de abertura, ou seja, se o arquivo deve ser aberto para leitura, escrita, etc. Modos de abertura:
- r: abre o arquivo no modo somente leitura e posiciona o ponteiro no início do arquivo; o arquivo já deve existir;
- r+: abre o arquivo para leitura/escrita, posiciona o ponteiro no início do arquivo;
- w: abre o arquivo no modo somente escrita; se o arquivo já existir, será sobrescrito; senão, será criado um novo;
- w+: abre o arquivo para escrita/leitura; se o arquivo já existir, será sobrescrito; senão, será criado um novo;
- a: abre o arquivo para anexar dados, posiciona o ponteiro no final do arquivo; se o arquivo não existir, será criado um novo;
- a+: abre o arquivo para anexo/leitura, posiciona o ponteiro no final do arquivo; se o arquivo não existir, será criado um novo;
Obs: Além dos modos de abertura descritos acima, um arquivo pode ser aberto como binário, especificando o modo de abertura como “b”.
use_include_path: este parâmetro é opcional; se for atribuído o valor 1, e não for especificado nenhum caminho (path) no nome do arquivo, ele será procurado no diretório especificado em include_path, no arquivo php.ini.
A função fopen() retorna um número inteiro, o indicador (handle) do arquivo. Este indicador será necessário quando formos realizar operações de leitura e escrita no arquivo, indicando qual arquivo iremos manipular. Portanto, para abrir um arquivo usamos a seguinte instrução:
<?php $fp = fopen(“./arquivo.dat”, “r”); // $fp conterá o handle do arquivo que abrimos ?>
Aqui estamos abrindo um arquivo já existente no modo somente leitura, e atribuindo o valor retornado por fopen() à variável $fp. $fp conterá um número inteiro positivo (o handle do arquivo) se a operação tiver sucesso; caso contrário, conterá zero.
Depois de utilizar o arquivo, é necessário que ele seja fechado. Para tanto utilizamos a função fclose():
fclose(handle_arquivo);
No caso do arquivo que abrirmos no exemplo anterior, teríamos a seguinte instrução:
<?php fclose($fp); ?>
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