NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
FILTRO DE TUTORIAIS:
Objetivos:
Neste tutorial aprenderemos como utilizar arquivos para armazenar dados, bem como edita-los e exclui-los. Veremos um exemplo prático com a criação de uma aplicação simples de agenda de contatos utilizando todos os recursos aprendidos até aqui.
Pré-requisitos: Ter acompanhado os tutoriais anteriores da série.
Em PHP é possível acessar arquivos locais e remotos, neste tutorial vamos nos limitar a arquivos que estão no nosso próprio servidor de teste.
Atenção! – Como nosso ambiente de teste é windows, não precisamos nos preocupar com permissões, mas devemos considerar isto quando utilizamos um servidor Unix (o mais comum na internet) e dar as permissões corretas para os arquivos que vamos utilizar (leitura, escrita ...)
Para manipular arquivos utilizaremos diversas funções do PHP, a primeira delas é fopen, que abre um “ponteiro” para o arquivo específico, ou seja cria um identificador para o arquivo que será utilizado em outras funções.
Sintaxe:
int fopen(string arquivo, string modo de abertura, int [use_include_path]);
No caso de erro a função fopen retorna false.
O primeiro parâmetro passado é o caminho do arquivo. Mas lembre-se este caminho é em relação ao script que está sendo executado, por exemplo, se o script está na raiz do site e o arquivo a ser aberto está na pasta raiz\arquivos então devemos passar “arquivos\nome.txt”.
Podemos abrir os arquivos de acordo com a função executaremos, esta opção é selecionada no modo de abertura, que passamos como segundo parâmetro, são eles:
r | Abre o arquivo apenas para leitura |
r+ | Abre o arquivo para leitura e escrita e posiciona o ponteiro no início do mesmo |
w | Abre o arquivo para escrita. Se o arquivo já existir o mesmo é sobreposto, se não, o PHP tenta criá-lo. |
w+ | Abre o arquivo para escrita e leitura. Se o arquivo já existir o mesmo é sobreposto, se não, o PHP tenta criá-lo. |
a | Abre o arquivo para escrita. Se o arquivo já existir o ponteiro é posicionado no fim do mesmo, se não, o PHP tenta criá-lo. |
a+ | Abre o arquivo para leitura e escrita. Se o arquivo já existir o ponteiro é posicionado no fim do mesmo, se não, o PHP tenta criá-lo. |
O terceiro parâmetro (use_include_path), deve ser setado como 1 ou 0 para determinar se você quer utilizar o path parametrizado no arquivo php.ini para procurar o arquivo.
Exemplo:
Supondo que tenhamos um arquivo nomeado “cidades.txt” no mesmo diretório do script e queremos abri-lo somente para leitura, então devemos chamar a função da seguinte maneira:
A variável $arquivo está apontando para o arquivo “cidades.txt” no modo somente leitura.
O tamanho do arquivo pode ser muito útil é um dado muito útil e necessário em outras funções, podemos medi-lo utilizando a função filesize da seguinte maneira:
int filesize(string arquivo);
O parâmetro passado é o caminho do arquivo, exatamente como passamos para a função fopen.
Exemplo:
Vamos medir o tamanho do arquivo “cidades.txt”:
A variável $tam recebe o tamanho do arquivo cidades.txt.
Atenção! Por serem mais pesadas o PHP guarda o resultado de algumas funções de manipulação de arquivos, como filesize e file_exists, em um cache. Portanto se pretendemos utilizar arquivos que são alterados constantemente devemos sempre limpar este cache utilizando a função clearstatcache da seguinte forma:
void clearstatcache();
*void significa que a função não tem retorno. Exemplo:
Para evitar erros ou tratá-los, em alguns casos é necessário saber se um determinado arquivo existe, para isto utilizamos a função file_exists da seguinte maneira:
int file_exists(string arquivo);
Esta função retorna true ou false, podendo ser utilizada em um comando IF, por exemplo:
Verifica se o arquivo existe, em caso positivo abre para leitura em caso negativo mostra a mensagem de erro.
Para ler o conteúdo de um arquivo utilizamos a função fread com a seguinte sintaxe:
String fread(int fp, int size);
O primeiro parâmetro passado é o identificador do arquivo (retornado pela função fopen), o segundo é a quantidade de caracteres a serem lidos, se for especificado um tamanho maior que o arquivo, o arquivo é lido até o fim e não é gerado nenhum erro, mas para esta finalidade é muito útil o uso da função filesize.
Exemplo:
Vamos abrir o arquivo “cidades.txt” para leitura e atribuir seu conteúdo a uma variável:
Uma função muito útil para leitura de arquivos de texto é a função file(), pois ela lê todo o conteúdo do arquivo e retorna um array onde cada posição é uma linha do arquivo. Sua sintaxe é simple:
file(string arquivo, int use_include_path);
Exemplo:
Perceba que não é necessário abrir o arquivo, e cada linha do arquivo fica em uma posição do array $texto, por exemplo:
$texto[0] = 1ª linha do arquivo
$texto[1] = 2ª linha do arquivo
$texto[2] = 3ª linha do arquivo
$texto[3] = 4ª linha do arquivo ...
Para escrever em um arquivo devemos sempre lembrar de abri-lo em um modo que permita escrita (w,w+,a,a+), e depois utilizar a função fwrite que escreve no arquivo a partir de onde o ponteiro estiver. Sintaxe:
int fwrite (int fp, string conteudo, int size);
O primeiro parâmetro passado é o identificador do arquivo, o segundo é a string que será escrita, e o terceiro o tamanho da string. Se o tamanho for menor que a string passada, só parte restante não será escrita.
Exemplo:
Perceba que como terceiro parâmetro passamos a função strlen(), que retorna exatamente o tamanho da string, garantindo a escrita por inteiro.
Obs.: Para escrever uma quebra de linha utilizamos “\n”.
Para movimentar o ponteiro pelo arquivo utilizamos a função fseek com a seguinte sintaxe:
fseek(int fp, int posicao);
Onde o primeiro parâmetro é o identificador do arquivo e o segundo é a posição para onde o ponteiro deve ir.
Exemplo:
Desta maneira mandamos o ponteiro para a posição 0 do arquivo, ou seja para o seu início.
Após manipularmos algum arquivo, devemos fecha-lo, ou seja fechar o seu identificador. Sintaxe:
fclose (int fp);
Onde o parâmetro passado é o identificador do arquivo a ser fechado.
Exemplo:
Para implementação de um ScrapBook bem simples, vamos criar duas páginas, uma pricipal onde serão exibidos os recados deixados e faremos a inserção de novos e uma onde ficará o script que processa e escreve estes recados no arquivo. Criaremos também um arquivo txt vazio nomeado “banco.txt”, onde escreveremos e armazenaremos os recados.
Vamos começar pela pagina principal:
Construir uma estrutura html normal e um título para onde ficarão os recados:
Após este título colocaremos o conteúdo do arquivo. Para isso utilizaremos a função file() para atribuir o conteúdo do arquivo a um array e depois utilizaremos um comando de repetição para que possamos imprimir na tela cada uma das linhas do array:
Perceba que utilizamos a função sizeof() que mede o número de posições do array, portanto o comando de repetição for vai incrementar a variável $i de 0 até o tamanho do array.
Desta forma vamos imprimir linha a linha do array.
Logo após podemos colocar um form para inserção de novos recados. Este form submeterá as variáveis para a página processa.php, que criaremos a seguir.
A página principal está pronta.
Partindo para a página processa.php, não é necessário inserir nenhum tag html, já que esta página não será exibida. Então criaremos o código que escreve as variáveis recebidas no arquivo ‘banco.txt”
Percebam que para concatenar as strings utilizamos “.”(ponto).
Este exemplo é bem simples mas pode se facilmente melhorado, pode-se adicionar tags html na string escrita para melhorar o visual dos recados, adicionar mais campos ao form e etc.
Neste tutorial mostramos como utilizar as principais funções de manipulação de arquivos, suas particularidades e parâmetros. Vimos também um exemplo prático da utlização de forms e de armazenagem de dados em arquivo texto.
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2024 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI