Tratamento de arquivo com PHP
Bom dia, caros amigos e alunos. Hoje vamos falar sobre tratamento de arquivos em PHP. Não é comum em desenvolvimento de páginas termos que ler ou gravar dados em arquivos, mas as vezes precisamos fazê-lo. Por essa razão posto esse assunto.
Posso parecer falar de mais, falando coisas que para uns seriam óbvias, porém a experiência me mostra que o que é óbvio para uns não o é para outros.
Você precisa ter na cabeça que irá precisar realizar três passos para manipular um arquivo, o segundo passo é o que mais trabalho e poderá ser subdividido em outros passos.
Passo 1. Abrir arquivo
Nesse passo você pede para o PHP localizar, disponibilizar o arquivo para ser manipulado e reservar recursos para tal. Nesse momento você precisará informar para quê você deseja abrir esse arquivo, dessa forma ele irá reservar os recursos de máquina necessários para sua operação.
Para abrir o arquivo você usa a função fopen. Veja sua descrição a seguir.
fopen(string <nome do arquivo>, string <modo>)
nome do arquivo - o nome do arquivo com o caminho completo.
modo - mode de abertura do 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 para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo e reduz o comprimento do arquivo para zero. 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. 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. Se o arquivo não existir, tenta criá-lo.
Exemplos
<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "w");
$handle = fopen("http://www.example.com/", "r");
?>
Passo 2. Tratar arquivo
Tratamento do arquivo. Não faz sentido você abrir o arquivo e não fazer nada com ele. Pois bem, você pode ler o mesmo, gravar linhas nele ou os dois, tudo vai depender se você o abriu da forma correta e da sua necessidade.
As funções de leitura e escrita em arquivos estão a seguir.
==== Função fgetc() ====
fgetc(resouce <manipulador>)
manipulador - é retornado pela função fopen().
Essa função obtém um caractere de um dado ponteiro de arquivo. O ponteiro após a leitura se move para o próximo caractere.
Exemplo:
<?php
$fp = fopen('algumarquivo.txt', 'r');
if (!$fp) {
echo 'Não é possivel abrir algumarquivo.txt';
}
while (false !== ($char = fgetc($fp))) {
echo "$char\n";
}
?>
==== Função fgetcsv() ====
fgetcsv(resource <manipulador> [, int <tamanho> [, string <delimitador> [, string <cercador> [, string <escape> ]]]])
cercador - Define o caractere que cerca um campo (somente um caractere). O padrão é aspas duplas.
escape - Define o caractere de escape (somente um caractere). O padrão é barra invertida (\)
Exemplo:
<?php
$row = 1;
$handle = fopen ("teste.csv","r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count ($data);
echo "<p> $num campos na linha $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose ($handle);
?>
==== Função fgetcsv() ====
fgets(resource <manipulador> [, int <tamanho> ])
Exemplo:
<?php
$handle = fopen ("teste.txt","r");
while (($data = fgets($handle)) !== FALSE) {
$row++;
echo $data[$c] . "<br />\n";
}
fclose ($handle);
?>
==== Função split() ====
split(string <separador> , string <texto> [, int <quantidade> ])
Essa função não exatamente para ser usada para se tratar arquivo, mas dependendo da situação precisamos separa informações que foram lidas previamente.
texto - É o texto que contem as informações que precisam ser separadas.
Exemplo:
<?php
$data = "2013-12-21";
list ($mes, $dia, $ano) = split ('-', $data);
echo "Dia: $dia; Mês: $mes; Ano: $ano<br />\n";
?>
Passo 3. Fechar arquivo
Após realizar todas as operações com o arquivo precisamos fecha-lo. Para isso usamos a função close, já usado nos exemplos anteriores.
fclose(resource <manipulador>)
manipulador - é criado no momento da abertura do arquivo.
Nenhum comentário:
Postar um comentário