Você está na página 1de 6

Imprimir

FOCO NO MERCADO DE TRABALHO

FUNÇÕES E

0
Ver anotações
MANIPULAÇÃO DE
ARQUIVOS EM PHP
Ely Fernando do Prado

APLICAÇÃO COM ARMAZENAGEM DE DADOS


Desenvolvimento de aplicação com armazenagem de dados digitados pelo usuário
em um arquivo e criação de relatório para exibição desses dados.

Fonte: Shutterstock.

Áudio disponível no material digital.


SEM MEDO DE ERRAR

Para ampliar sua visão acerca das possibilidades de aplicação dos


conhecimentos obtidos até o momento, vamos propor uma resolução

0
para a situação-problema apresentada no início da seção. Deve-se

Ver anotações
continuar a aplicação web em que o usuário deverá digitar a distância a

ser percorrida, o preço da gasolina e o preço do etanol. Logo depois


deverá ser calculado e exibido o valor gasto com cada um dos
combustíveis, considerando um consumo de 9 km/litro de etanol e 11
km/litro de gasolina, além de mostrar ao usuário qual o combustível ca

mais barato. Nesta seção foi solicitado que adicionássemos o requisito de

armazenar os dados digitados pelo usuário em um arquivo, e depois que


criássemos um relatório que exibisse esses dados. A parte de código em

que o usuário fará a entrada de dados (index.html) não terá nenhuma

alteração com a versão anterior, mantendo-se da seguinte forma:

Código 4.37 | index.html

1 <html>

2 <body>

3 <h1>Combustível</h1>

4 <form action="resposta.php" method="post">

5 Distância:

6 <input type="text" name="distancia"/>

7 <br/> Preço etanol:

8 <input type="text" name="precoEtanol"/>

9 <br/> Preço gasolina:

10 <input type="text" name="precoGasolina"/>

11 <br/><input type="submit" value="ok"/>

12 </form>

13 </body>
14 </html>
Fonte: elaborado pelo autor.

Já a página “respostas.php” terá alterações quando à formatação dos

números, utilizando a função number_format, a captura da data atual

0
com a função date e ao armazenamento dos dados em um arquivo

Ver anotações
chamado “log.txt”. É adicionado, ainda, um link para o usuário abrir a

página chamada “relatório.php”. A seguir, é apresentado o código da

página “resposta.php”, dando destaque em negrito para as partes que


foram alteradas da seção anterior:

Código 4.38 | Exibir relatório de preços de combustível


1 <html>
2 <head><title>Resposta</title></head>

3 <body>
4 <?php

0
5 $distancia = $POST[“distancia”];

Ver anotações
6 $precoEtanol = $POST[“precoEtanol”];
7 $precoGasolina = $POST[“precoGasolina”];

8 $gastoEtanol = $distancia / 9 * $precoEtanol;


9 $gastoGasolina = $distancia / 11 * $precoGasolina;

10
11 echo “O valor gasto com etanol é: “;

12 echo number_format($gastoEtanol, 2, “,”, “.”);


13 echo “<br/>”;

14
15 echo “O valor gasto com gasolina é: “;

16 echo number_format($gastoGasolina, 2, “,”, “.”);


17 echo “<br/>”;

18
19 if ($gastoEtanol < $gastoGasolina) {

20 echo “Abasteça com Etanol”;


21 } else {
22 echo “Abasteça com Gasolina”;

23 }
24

25 //pega a data atual


26 $data = date(‘d/m/Y’);

27
28 //abre o arquivo no modo de escrita com adição de

dados (append)
29 $arquivo = fopen(‘log.txt’,’a’);

30 if ($arquivo) {
31 //se conseguiu abrir o arquivo, grava os dados

separando-os por um espaço


32 fwrite($arquivo, $data);
33 fwrite($arquivo, “ “);

34 fwrite($arquivo, number_format($precoEtanol,
2, “,”, “.”));

35 fwrite($arquivo, “ “);

0
36 fwrite($arquivo, number_format($precoGasolina,

2, “,”, “.”));

Ver anotações
37 //grava uma quebra de linha

38 fwrite($arquivo, “\n”);
39 //fecha o arquivo

40 fclose($arquivo);
41 }
42 ?>

43
44 <!—link para o relatório >

45 <a hr” elatóriorio.”hp">Abrir Relatório</a>


46 </body>

47 </html>

Fonte: elaborado pelo autor.

Por m, deve-se criar uma página de relatório capaz de exibir os dados

que foram armazenados no arquivo log.txt, conforme exemplo a seguir:

Código 4.39 | Relatório


1 <html>

2 <head>
3 <title>Relatório</title>

4 </head>

0
5 <body>

Ver anotações
6 <h1>Relatório dos Preços de Combustível</h1>
7 <?php

8 $arquivo = fopen('log.txt','r');

9 if ($arquivo) {
10 // imprime linha por linha ate detectar o
final
11 while(!feof($arquivo)) {
12 echo fgets($arquivo). '<br />';

13 }
14 fclose($arquivo);
15 }
16 ?>

17
18 </body>
19 </html>

Fonte: elaborado pelo autor.

Você também pode gostar