Iniciando PHP
Professor: Eduardo Mendes
Agenda
•  Visão Geral
•  Arquitetura Cliente-Servidor
•  Programas Básicos
•  Sintaxe do PHP
•  Formulários
•  Manipulação...
Visão Geral
•  Páginas web  simples documentos
Visão Geral
•  Página web com PHP
–  aplicação interativa
Testando Configuração
•  Iniciar o EasyPHP
–  Iniciar  Programas  EasyPHP
Testando Configuração
•  Executar algum browser (navegador)
–  http://localhost
Testando Configuração
•  Os arquivos serão salvos na pasta www do
EasyPHP
–  C:Arquivos de programasEasyPHP1-8www
Material Exemplo
•  http://www.fa7.edu.br/webiniciantes/
modulo2/iniciandoPhp.zip
Escrevendo programas php
•  Primeiro Exemplo
<html>
<body>
<?
print "Hello, world!";
?>
</body>
</html>   Salve-o na past...
Escrevendo programas php
•  Segundo exemplo
<html>
<body>
A data atual é
<?php
echo gmdate(“d/m/Y”);
?>
</body>
</html>
 ...
Escrevendo programas php
•  Terceiro exemplo
<html>
<body>
O nome da faculdade é
<?php
$nomeDaFaculdade = “FA7”;
echo $nom...
PHP & Arquivos
•  Crie um arquivo txt na pasta www do
EasyPHP com o nome “dicas.txt”
Dica do Dia
<html>
<head>
<title>Dica do Dia</title>
</head>
<body>
<h1>Dica do Dia:</h1>
<br/>
<p class=“destaque”>
<?
re...
Formulários
Formulários
qualSeuNome.html
<h1>Qual seu nome?</h1>
<form method = “post” action = "oiUsuario.php">
Por favor digite seu nome:
<input...
oiUsuario.php
<h1>Oi, usuário</h1>
<p class=“destaque”>
<?
print "Olá, “ . $_POST[‘nome’];
?>
</p>
musica.html
musica.php
musica.html
<h3>Por favor, preencha os campos abaixo</h3>
<form method = "post" action = "musica.php">
<p>Dia da Semana</p...
musica.php
<h1>Semana que vem</h1>
<p class="texto">
A partir de <span class="var">
<?php print $_POST['diaDaSemana']; ?>
...
oiUsuario2.php
oiUsuario2.php
oiUsuario2.php
<h1>Oi Usuário</h1>
<?php
if (empty($_POST[‘nomeDoUsuario’])){
?>
<form method=“post”>
Por favor, digite o ...
Trabalhando com
Variáveis numéricas
numeros.php
<html>
<body>
<?
$x = 3;
$y = 5;
print "$x + $y = ";
print $x + $y;
print "<br><br>";
print "$x - $y = ";
prin...
Criando um número
randômico
dado.php
<html>
<body>
<h1>Jogar Dado!</h1>
<h3>Demonstração de um dado</h3>
<?
$valor = rand(1,6);
print "O valor que voc...
Condicionais
Jogo do Dado
jogoDado.php
<html>
<body>
<?
$valor = rand(1,6);
print "O valor que você obteve foi $valor";
if ($valor == 1 || $valor==4...
Condicionais
Operadores de comparação
Operador Descrição
== Igual a
< Menor do que
> Maior do que
<= Menor do que ou
igual...
Condicionais
if e else
jogoDado2.php<html>
<body>
<h1>Ganhou ou nao?</h1>
<?
$valor = rand(1,6);
print "O valor que voce obteve foi $valor";
prin...
Múltiplas
condições
$valor = rand(1,6);
print “Você obteve o valor $valor";
print "<br>";
if ($valor == 1){
$binValue = "0...
Múltiplas condições
switch
switch ($valor){
case 1:
$romValue = "I";
break;
case 2:
$romValue = "II";
break;
case 3:
$romV...
Funções - Encapsulando parte do programa
<?
function soma() {
print "A soma de 2 + 2 eh " . (2 + 2) . "<br>";
}
function subtrai() {
print "A subtracao de 2 por 2 ...
Funções
com parâmetros
<?
function soma($x) {
print "A soma de $x + $x eh " . ($x + $x) . "<br>";
}
function subtrai($x) {
print "A subtracao de ...
Funções
Retornando um valor
calculosRetorno.php
<?
function soma($x) {
$y = ($x + $x);
return $y;
}
?>
<html>
<body>
<h1>Funcoes de Calculos</h1>
<?
p...
DESAFIOS!!!
•  Elaborar uma função que passado um valor
para a função entre 1 e 6, a função exiba na
tela o dado correspon...
Solução
function desenhaDado($valor) {
if ($valor < 1 || $valor > 6) {
print “Este dado não existe”;
} else {
print “<img ...
PHP & Estruturas de Controle
LOOPS
As 3 etapas
de um loop FOR
•  Inicialização da variável de controle
•  Condição para finalizar o loop
•  Alteração da vari...
Contando com
o loop FOR
forSimples.php
<html>
<head>
<title>Um loop for simples</title>
</head>
<body>
<h1>Um loop for simples</h1>
<?
for ($i = 0...
Contando de 5 em 5
O que há de novo?
for ( $i = 5; $i <= 50; $i=$i + 5){
print "$i <br>";
}
$i = $i + 5
forContando5.php
<html>
<head>
<title>Contando de Trás pra Frente </title>
</head>
<body>
<h1> Contando de Trás pra Frente...
Usando um loop
WHILE
whileSimples.php
<html>
<body>
<h1> Um Loop While Simples</h1>
<?
$i = 1;
while ($i <= 10){
print "$i <br>";
$i = $i + 1;
...
Relembrando
Tabelas
•  <table>
–  Define uma tabela
•  <tr>
–  Define uma linha
•  <td>
–  Define uma coluna
•  Atenção:
–...
Desafio!
•  Construir uma função que imprima na tela
uma linha de uma tabela
<table>
<?
function linhaTabela() ;
?>
</tabl...
Solução!
<?
function linhaTabela($nome) {
print “<tr><td>$nome</td></tr>”;
}
?>
<table border=“1”>
<?
linhaTabela(“Eduardo...
Desafio 2!
•  Construir uma função que, dado o número
de linhas como argumento da função,
construa uma tabela como o númer...
Arrays
•  Variáveis são como copos
–  Contém, guardam alguma coisa
–  Valores
•  Arrays são como bandejas de copos
Gerando
o Array
$camelPop[1] = "Somalia";
$camelPop[2] = "Sudan";
$camelPop[3] = "Mauritania";
$camelPop[4] = "Pakistan";
...
Examinando o conteúdo
do Array com um loop
for ($i = 1; $i <= 5; $i++) {
print "$i: $camelPop[$i]<br>";
}
As funções
array() e count()
•  Carregando um Array com valores
$binary = array("000", "001", "010", "011");
•  Detectando...
arrayBasico.php
<html>
<body>
<h1>Array Básico</h1>
<?
$camelPop[1] = "Somalia";
$camelPop[2] = "Sudan";
$camelPop[3] = "M...
arrayBasico.php
print "<h3>Maiores populações de camelos no mundo</h3>";
for ($i = 1; $i <= 5; $i++) {
print "$i: $camelPo...
Loop com
forEach
<?
$nomes =
array("Eduardo", "Luiz", "Guilherme", "Victor");
?>
<html>
<body>
<?
foreach ($nomes as $nome...
Desafio 3
•  Dado um array de nomes
–  Criar uma função que desenhe a tabela
–  O número de linhas igual ao tamanho do arr...
Campos ocultos
persistencia.php
<html>
<body>
<h1>Persistencia</h1>
<form>
<?
if (!isset($contador) && !isset($oculto)) {
$contador = 0;
...
persistencia.php
print “
<input type=”text”
name=”contador”
value=”$contador”>
<input type=”hidden”
name=”oculto”
value=”$...
Funções de arquivos em Php
•  Funções que servem para manipular
arquivos
–  Criar
–  Ler
–  Alterar
–  Sobrescrever conteú...
Funções de arquivos em Php
Abrindo um arquivo
•  Abre arquivos do servidor web
•  Cria um atalho (ponteiro) para o arquivo e
atribui a uma variável
•...
Modificadores
de Acesso
Modificador Tipo Descrição
“r” Somente leitura O programa pode ler o
arquivo
“w” Escrever Escreve ...
Escrevendo em um arquivo
•  Parâmetros
–  Ponteiro para o arquivo
–  Texto a ser escrito
fputs($p, $texto);
Fechando um arquivo
•  A função fclose() diz ao sistema que o seu
arquivo já foi escrito e pode ser fechado
•  Parâmetros
...
Tudo junto - Criando um arquivo
•  Vamos criar um programa em PHP que cria
um arquivo de texto no diretório.
•  Depois vam...
salvarPoema.php
<html>
<head><title>Salvar Poema</title></head>
<body>
<?
$poema = “Casa do Tempo Perdido, Drummond
Bati n...
Carregando
um Arquivo
Verificando o fim do Arquivo
•  Geralmente você não sabe o tamanho do arquivo
•  fgets()
–  Pega linha por linha do arquiv...
carregarPoema.php
<html>
<head>
<title>Carregar Poema</title>
</head>
<body>
<?
$c = fopen("casa.txt", "r");
$linha = fget...
carregarPoema.php  NUMERANDO
<html>
<head>
<title>Carregar Poema</title>
</head>
<body>
<?
$c = fopen("casa.txt", "r");
$...
Trabalhando com diretórios
A função
openDir()
•  Para usar diretórios do servidor web
•  Cria um atalho (ponteiro) para o diretório
•  Parâmetros
–  ...
A função
chDir()
•  Muda o diretório atual para o diretório
especificado como parâmetro
•  Parâmetros
–  Caminho do diretó...
A função
readDir()
•  Recupera o nome do próximo arquivo dentro
do diretório
•  Parâmetros
–  Ponteiro para diretório
$arq...
listandoDiretorio.php
<html>
<head><title>Listar Arquivos</title></head>
<body>
<h1>Listando Arquivos</h1>
<?
$diretorio =...
Selecionando
Arquivos específicos
•  Seleciona arquivos de acordo com um critério
–  Expressões regulares no estilo Perl
–...
listandoDiretorio.php
<html>
<head><title>Album Simples</title></head>
<body>
<h1>Listando Arquivos</h1>
<?
$diretorio =“i...
Concatenando
palavras
•  Operador de concatenação  .
$vogais = “A” . “E” . “I” . “O” . “U”;
print “$vogais”;
$output .= “...
Álbum Simples
Preparando
as Imagens
•  Google
•  3 Imagens de cachorro
•  Tipo imagem
–  jpg
–  gif
albumSimples.php
<html>
<head>
<title>Album Simples</title>
</head>
<body>
<?
$nomeDiretorio =
"C:Arquivos de programasEas...
albumSimples.php
$imagens = preg_grep("/jpg$|gif$/", $arquivos);
$output = "";
foreach ($imagens as $arquivoAtual){
$outpu...
borderMaker.html
<html>
<head>
<title>Escolha de Fonte</title>
</head>
<body>
<center>
<h1>Escolha de Fonte</h1>
<h3>Demon...
borderMaker.html
<form method = "post“
action = "borderMaker.php">
<h3>Texto a modificar</h3>
<textarea name = “textoQualq...
borderMaker.html
<table border =“2”>
<tr>
<td>
<h3>Estilo da borda</h3>
</td>
<td colspan =“2”>
<h3>Tamanho da borda</h3>
...
borderMaker.html
<tr>
<td>
<select name =“tipoBorda”>
<option value = "ridge">ridge</option>
<option value = "groove">groo...
borderMaker.html
<td>
<select size =“5” name = “tamanhoBorda”>
<option value = "1">1</option>
<option value = "2">2</optio...
borderMaker.html
<td>
<input type = "radio“
name = “tipoMedida“
value = "px">pixels<br>
<input type = "radio“
name = " tip...
borderMaker.html
<input type = "submit“
value = "Mostre-me">
</form>
</center>
</body>
</html>
borderMaker.php
<html>
<head><title>Sua Borda</title></head>
<body>
<h1>Your Output</h1>
<center>
<?
$estilo = <<<HERE
"bo...
borderMaker.php
print "<div style = $estilo>";
print $textoQualquer;
print "</div>";
?>
</center>
</body>
</html>
Alterando
as informações recebidas
A função
file()
•  file()
–  Não usa ponteiros
–  Coloca o conteúdo do arquivo em um array
–  Cada linha ocupa um espaço d...
O comando
foreach()
•  foreach()
– Laço (loop) para percorrer um array
foreach ($poema as $linha){
$linha = str_replace("r...
O comando
str_replace()
•  str_replace()
– Substitui certas partes da string por
outra
foreach ($poema as $linhaAtual){
$l...
Cortando as sobras
•  rtrim()
–  Retira espaços em branco do lado direito da
String
–  rtrim()  Right Trim
•  Variante
– ...
bagucando.php
<html>
<head><title>Bagunçando</title></head>
<body>
<?
$arquivo = "casa.txt";
$poema = file($arquivo);
$out...
Desafio
•  Criar uma função que receba uma data no
formato dd-mm-yyyy e devolva a data no
formato dd/mm/yyyy
function form...
Formatando Textos
Transfomando String em Array
•  split()
–  Transforma uma String em um Array
•  list()
–  Não é uma função
–  É uma constr...
lista.dat
listaEmail.php
<html>
<head><title>Lista de Emails</title></head>
<body>
<form>
<?
$dados = file("lista.dat");
foreach($da...
listaEmail.php
$messagem = “
Para: $email
Caro $nome:
Obrigado por participar do nosso forum.
Atenciosamente,
FA7.
“;
prin...
QuizMachine
estilo.css
.secao {
border-style:solid;
border-width:thin;
border-color:#000066;
width: 400px;
background-color:#E5E5E5;
}
QuizMachine
Página baseada em funções
<html>
<head>
<title>Quiz Machine</title>
</head>
<body>
<h1>Quiz Machine</h1>
<?
recuperarArqui...
Página baseada em funções
<?
include("funcoes.php");
?>
<html>
<head>
<title>Quiz Machine</title>
</head>
<body>
<h1>Quiz ...
Exibindo um teste
funcoes.php
function exibirTeste(){
global $arquivos;
print "
<center>
<div class="secao">
<form action="jogarQuiz.php" me...
funcoes.php
$html = preg_grep("/htm$/", $arquivos);
foreach ($html as $temp){
$quiz=substr($temp, 0, strlen($temp) - 4);
p...
Recuperando arquivos
<?
function recuperarArquivos(){
global $dirPtr, $arquivos;
chdir(".");
$dirPtr = openDir(".");
$arqu...
Editando um quiz
funcoes.php
function exibirEditar(){
global $arquivos;
$mestres = preg_grep("/mestre$/", $arquivos);
print "
<center>
<div...
funcoes.php
foreach ($mestres as $original){
$nome = substr($original, 0, strlen($original) - 8);
print "<option value="$o...
Imprimindo uma variável na tela facilmente
•  Para imprimir
<? print $nomeDaVariavel; ?>
•  Simplificademente para uma lin...
EditarQuiz
editarQuiz.php
<html>
<head>
<title>Editar Quiz</
title>
</head>
<body>
<?
$dadosQuiz = "";
$senha = $_POST[‘senha’];
$edi...
editarQuiz.php
<center>
<div class="secao">
<form action="escreverQuiz.php" method="post">
<p>Nome do Quiz:
<input type="t...
editarQuiz.php
<tr>
<td rowspan = “1” colspan = “2”>
<textarea name = "dadosQuiz“ rows = "10" cols = "60">
<?= $dadosQuiz ...
editarQuiz.php
$dadosQuiz = "";
if ($senha != "phpfa7"){
print "Senha Inválida!";
} else {
if ($editarArquivo == "novo"){
...
Baixar Material
•  http://www.fa7.edu.br/phpparainiciantes/
modulo2/quiz.zip
•  Descompactar
•  Abrir o escreverQuiz.php
escreverQuiz.php
$arquivoBase = str_replace(" ", "_", $nomeQuiz);
$arquivoHtml = $arquivoBase . ".html";
$arquivoMestre = ...
escreverQuiz.php
function construirMestre(){
global $nomeQuiz, $emailQuiz, $senhaQuiz, $dadosQuiz;
$dadosMestre = $nomeQui...
Percorrendo o arquivo
$numeroQuestao = 1;
foreach ($problemas as $problemaAtual){
list($questao,
$respostaA,
$respostaB,
$...
Criando String delimitadas por caracteres
•  Exemplo
–  “Qual meu nome?:Dudu:Du:Edu”
–  “Animais-cachorro-gato”
list($vari...
Pontuando o Quiz
Arquivo Mestre(.mas)
Meu Nome
root@localhost
nome
Qual meu nome?:Eduardo:Marcelo:Álvaro:Mauro:A
Baixar Material
•  http://www.fa7.edu.br/phpparainiciantes/
modulo2/quiz2.zip
•  Descompactar
•  Abrir o pontuarQuiz.php
Pontuando o Quiz
Abrindo os Arquivos
//abre o arquivo master correto para leitura
$arquivoBase = str_replace(" ", "_", $no...
Pontuando o Quiz
Criando uma Resposta
//percorre as questoes em busca da
$numeroCorretas = 0;
$numeroQuestao = 1;
while (!...
Pontuando o Quiz
Checando a resposta do usuário
//Confere as repostas do usuário
for($numeroQuestao = 1;
$numeroQuestao <=...
Pontuando o Quiz
Exibindo o resultado
print “
Você tem $numeroCorretas correta(s)<br>n";
$porcentagem = ($numeroCorretas/c...
Visualizando
LOG
visualizarLog.php
<?
if ($senha == "phpfa7"){
$linhas = file($logFile);
print "<pre>n";
foreach ($linhas as $linha){
print...
Dúvidas?
Obrigado!
PHP básico para iniciantes
PHP básico para iniciantes
PHP básico para iniciantes
PHP básico para iniciantes
PHP básico para iniciantes
Próximos SlideShares
Carregando em…5
×

PHP básico para iniciantes

1.601 visualizações

Publicada em

Conceitos e exemplos básicos de PHP envolvendo variáveis, funções, arrays, arquivos, manipulação de Strings

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.601
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
101
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

PHP básico para iniciantes

  1. 1. Iniciando PHP Professor: Eduardo Mendes
  2. 2. Agenda •  Visão Geral •  Arquitetura Cliente-Servidor •  Programas Básicos •  Sintaxe do PHP •  Formulários •  Manipulação de Strings •  Controle de Fluxo
  3. 3. Visão Geral •  Páginas web  simples documentos
  4. 4. Visão Geral •  Página web com PHP –  aplicação interativa
  5. 5. Testando Configuração •  Iniciar o EasyPHP –  Iniciar  Programas  EasyPHP
  6. 6. Testando Configuração •  Executar algum browser (navegador) –  http://localhost
  7. 7. Testando Configuração •  Os arquivos serão salvos na pasta www do EasyPHP –  C:Arquivos de programasEasyPHP1-8www
  8. 8. Material Exemplo •  http://www.fa7.edu.br/webiniciantes/ modulo2/iniciandoPhp.zip
  9. 9. Escrevendo programas php •  Primeiro Exemplo <html> <body> <? print "Hello, world!"; ?> </body> </html>   Salve-o na pasta www do EasyPHP como exemplo1.php   Executando a página http://localhost/exemplo1.php
  10. 10. Escrevendo programas php •  Segundo exemplo <html> <body> A data atual é <?php echo gmdate(“d/m/Y”); ?> </body> </html>   Salve-o na pasta www EasyPHP como exemplo2.php   Executando a página http://localhost/exemplo2.php
  11. 11. Escrevendo programas php •  Terceiro exemplo <html> <body> O nome da faculdade é <?php $nomeDaFaculdade = “FA7”; echo $nomeDaFaculdade; ?> </body> </html>   Salve-o na pasta www EasyPHP como exemplo3.php   Executando a página http://localhost/exemplo3.php
  12. 12. PHP & Arquivos •  Crie um arquivo txt na pasta www do EasyPHP com o nome “dicas.txt”
  13. 13. Dica do Dia <html> <head> <title>Dica do Dia</title> </head> <body> <h1>Dica do Dia:</h1> <br/> <p class=“destaque”> <? readfile("dicas.txt"); ?> </p> </body> </html>   Salve-o na pasta www EasyPHP como dicadodia.php   Executando a página http://localhost/dicadodia.php
  14. 14. Formulários
  15. 15. Formulários
  16. 16. qualSeuNome.html <h1>Qual seu nome?</h1> <form method = “post” action = "oiUsuario.php"> Por favor digite seu nome: <input type = “text” name = "nome“/> <br/> <br/> <input type = “submit” value = “Enviar”/> </form>
  17. 17. oiUsuario.php <h1>Oi, usuário</h1> <p class=“destaque”> <? print "Olá, “ . $_POST[‘nome’]; ?> </p>
  18. 18. musica.html
  19. 19. musica.php
  20. 20. musica.html <h3>Por favor, preencha os campos abaixo</h3> <form method = "post" action = "musica.php"> <p>Dia da Semana</p> <p> <input type = "text" name = "diaDaSemana"/> </p> <p>Ação</p> <p> <input type = "text" name = "acao"/> </p> <p>Quantidade de Horas</p> <p> <input type = "text" name = "horas"/> </p> <p>Tempo</p> <p> <select name = "tempo"> <option>Da próxima vez</option> <option>Hoje</option> <option>Nunca</option> </select> </p> <p><input type = "submit" value = "Faça a Música"></p> </form>
  21. 21. musica.php <h1>Semana que vem</h1> <p class="texto"> A partir de <span class="var"> <?php print $_POST['diaDaSemana']; ?> </span> eu vou discutir <br /> <span class="var"> <?php print $_POST['tempo']; ?></span> eu vou questionar <br /> Na segunda eu começo a agir <br /> Só mais <span class="var” <?php print $_POST['horas']; ?></span> horas pra eu decidir. </p>’
  22. 22. oiUsuario2.php
  23. 23. oiUsuario2.php
  24. 24. oiUsuario2.php <h1>Oi Usuário</h1> <?php if (empty($_POST[‘nomeDoUsuario’])){ ?> <form method=“post”> Por favor, digite o seu nome: <input type = ”text” name =”nomeDoUsuario”><br /> <input type =”submit” value =”Enviar”> </form> <?php } else { print "<h3>Olá, “ . $_POST[‘nomeDoUsuario’] . “!</h3>"; } ?>
  25. 25. Trabalhando com Variáveis numéricas
  26. 26. numeros.php <html> <body> <? $x = 3; $y = 5; print "$x + $y = "; print $x + $y; print "<br><br>"; print "$x - $y = "; print $x - $y; print "<br><br>"; print "$x * $y = "; print $x * $y; print "<br><br>"; print "$x / $y = "; print $x / $y; print "<br><br>"; ?> </body> </html>
  27. 27. Criando um número randômico
  28. 28. dado.php <html> <body> <h1>Jogar Dado!</h1> <h3>Demonstração de um dado</h3> <? $valor = rand(1,6); print "O valor que você obteve é $valor"; print "<br/><br/>"; print "<img src =”dado$valor.gif” width=100 height=100>"; ?> <br/><br/> Dê um refresh nesta página para jogar de novo. </body> </html>
  29. 29. Condicionais Jogo do Dado
  30. 30. jogoDado.php <html> <body> <? $valor = rand(1,6); print "O valor que você obteve foi $valor"; if ($valor == 1 || $valor==4){ print "<h1>Você é o ganhador!!!!!</h1>"; } // end if print "<br/><br/>"; print "<img src =dado$valor.gif width=100 height=100>"; ?> <br/><br/> Dê um refresh nesta página para jogar de novo. </body> </html>
  31. 31. Condicionais Operadores de comparação Operador Descrição == Igual a < Menor do que > Maior do que <= Menor do que ou igual a >= Maior do que ou igual a != Diferente de
  32. 32. Condicionais if e else
  33. 33. jogoDado2.php<html> <body> <h1>Ganhou ou nao?</h1> <? $valor = rand(1,6); print "O valor que voce obteve foi $valor"; print "<br>"; if ($valor == 1){ print "<h1>Voce ganhou!!!!!</h1>"; } else { print "Tente novamente..."; } // end if print "<br>"; print "<img src = dado$valor.gif width=100 height=100>"; ?> <br> Dê um refresh nesta página para jogar de novo. </body> </html>
  34. 34. Múltiplas condições $valor = rand(1,6); print “Você obteve o valor $valor"; print "<br>"; if ($valor == 1){ $binValue = "001"; } else if ($valor == 2) { $binValue = "010"; } else if ($valor == 3) { $binValue = "011"; } else if ($valor == 4) { $binValue = "100"; } else if ($valor == 5) { $binValue = "101"; } else if ($valor == 6) { $binValue = "110"; } else { print “Eu não sei qual o valor..."; } // end if
  35. 35. Múltiplas condições switch switch ($valor){ case 1: $romValue = "I"; break; case 2: $romValue = "II"; break; case 3: $romValue = "III"; break; case 4: $romValue = "IV"; break; case 5: $romValue = "V"; break; case 6: $romValue = "VI"; break; default: print “Este dado não existe!"; } // end switch
  36. 36. Funções - Encapsulando parte do programa
  37. 37. <? function soma() { print "A soma de 2 + 2 eh " . (2 + 2) . "<br>"; } function subtrai() { print "A subtracao de 2 por 2 eh " . (2 - 2) . "<br>"; } function multiplica() { print "A multiplicacao de 2 por 2 eh " . (2 * 2) . "<br>"; } function divide() { print "A divisao de 2 por 2 eh " . (2 / 2) . "<br>"; } ?> <html> <body> <? soma(); subtrai(); multiplica(); divide(); ?> </body> </html> calculos.php
  38. 38. Funções com parâmetros
  39. 39. <? function soma($x) { print "A soma de $x + $x eh " . ($x + $x) . "<br>"; } function subtrai($x) { print "A subtracao de $x por $x eh " . ($x - $x) . "<br>"; } function multiplica($x) { print "A multiplicacao de $x por $x eh " . ($x * $x) . "<br>"; } function divide($x) { print "A divisao de $x por $x eh " . ($x / $x) . "<br>"; } ?> <html> <body> <? soma(4); subtrai(7); multiplica(2); divide(1); ?> </body> </html> calculos2.php
  40. 40. Funções Retornando um valor
  41. 41. calculosRetorno.php <? function soma($x) { $y = ($x + $x); return $y; } ?> <html> <body> <h1>Funcoes de Calculos</h1> <? print "A soma de 2 + 2 eh " . soma(2) . "<br>"; ?> </body> </html>
  42. 42. DESAFIOS!!! •  Elaborar uma função que passado um valor para a função entre 1 e 6, a função exiba na tela o dado correspondente ao valor •  Melhorar a função, podendo ser passado qualquer valor, mas se o número for menor que 1 ou maior que 6, deve apresentar a frase “Este dado não existe”;
  43. 43. Solução function desenhaDado($valor) { if ($valor < 1 || $valor > 6) { print “Este dado não existe”; } else { print “<img src=“dado$valor.gif” width=”100” heigth= ”100”>”; } }
  44. 44. PHP & Estruturas de Controle LOOPS
  45. 45. As 3 etapas de um loop FOR •  Inicialização da variável de controle •  Condição para finalizar o loop •  Alteração da variável de controle for ( ; ; ){ print "$i <br>"; } $i = 0 $i <= 3 $i = $i+1
  46. 46. Contando com o loop FOR
  47. 47. forSimples.php <html> <head> <title>Um loop for simples</title> </head> <body> <h1>Um loop for simples</h1> <? for ($i = 0; $i <= 10; $i++){ print "$i <br>"; } ?> </body> </html>
  48. 48. Contando de 5 em 5
  49. 49. O que há de novo? for ( $i = 5; $i <= 50; $i=$i + 5){ print "$i <br>"; } $i = $i + 5
  50. 50. forContando5.php <html> <head> <title>Contando de Trás pra Frente </title> </head> <body> <h1> Contando de Trás pra Frente</h1> <? for ($i = 10; $i > 0; $i--){ print "$i <br>"; } ?> </body> </html>
  51. 51. Usando um loop WHILE
  52. 52. whileSimples.php <html> <body> <h1> Um Loop While Simples</h1> <? $i = 1; while ($i <= 10){ print "$i <br>"; $i = $i + 1; } ?> </body> </html>
  53. 53. Relembrando Tabelas •  <table> –  Define uma tabela •  <tr> –  Define uma linha •  <td> –  Define uma coluna •  Atenção: –  Uma linha tem ao menos uma coluna!
  54. 54. Desafio! •  Construir uma função que imprima na tela uma linha de uma tabela <table> <? function linhaTabela() ; ?> </table>
  55. 55. Solução! <? function linhaTabela($nome) { print “<tr><td>$nome</td></tr>”; } ?> <table border=“1”> <? linhaTabela(“Eduardo”); ?> </table>
  56. 56. Desafio 2! •  Construir uma função que, dado o número de linhas como argumento da função, construa uma tabela como o número de linhas pedido •  Declaração function tabela($numeroDeLinhas) { } •  Exemplo de uso function tabela(5);
  57. 57. Arrays •  Variáveis são como copos –  Contém, guardam alguma coisa –  Valores •  Arrays são como bandejas de copos
  58. 58. Gerando o Array $camelPop[1] = "Somalia"; $camelPop[2] = "Sudan"; $camelPop[3] = "Mauritania"; $camelPop[4] = "Pakistan"; $camelPop[5] = "India";
  59. 59. Examinando o conteúdo do Array com um loop for ($i = 1; $i <= 5; $i++) { print "$i: $camelPop[$i]<br>"; }
  60. 60. As funções array() e count() •  Carregando um Array com valores $binary = array("000", "001", "010", "011"); •  Detectando o tamanho de um array for ($i = 0; $i < count($binary); $i++){ print "$i: $binary[$i]<br>n"; }
  61. 61. arrayBasico.php <html> <body> <h1>Array Básico</h1> <? $camelPop[1] = "Somalia"; $camelPop[2] = "Sudan"; $camelPop[3] = "Mauritania"; $camelPop[4] = "Pakistan"; $camelPop[5] = "India";
  62. 62. arrayBasico.php print "<h3>Maiores populações de camelos no mundo</h3>"; for ($i = 1; $i <= 5; $i++) { print "$i: $camelPop[$i]<br>"; } $binary = array("000", "001", "010", "011"); print "<h3>Números binários</h3>"; for ($i = 0; $i < count($binary); $i++){ print "$i: $binary[$i]<br>n"; } ?> </body> </html>
  63. 63. Loop com forEach <? $nomes = array("Eduardo", "Luiz", "Guilherme", "Victor"); ?> <html> <body> <? foreach ($nomes as $nome) { echo $nome."<br/>"; } ?> </body> </html>
  64. 64. Desafio 3 •  Dado um array de nomes –  Criar uma função que desenhe a tabela –  O número de linhas igual ao tamanho do array –  Cada linha deve conter um dos nomes –  As linhas devem ser desenhadas por uma função que passado o valor desenhe uma linha da tabela –  Array $nomes = array("Eduardo", "Luiz", "Guilherme", "Victor");
  65. 65. Campos ocultos
  66. 66. persistencia.php <html> <body> <h1>Persistencia</h1> <form> <? if (!isset($contador) && !isset($oculto)) { $contador = 0; $oculto = 0; } $contador++; $oculto++;
  67. 67. persistencia.php print “ <input type=”text” name=”contador” value=”$contador”> <input type=”hidden” name=”oculto” value=”$oculto”> <h3>O valor oculto(hidden) $oculto</h3> <input type=”submit” value=”Incremente os contadores”> “; ?> </form> </body> </html>
  68. 68. Funções de arquivos em Php •  Funções que servem para manipular arquivos –  Criar –  Ler –  Alterar –  Sobrescrever conteúdo •  O nome destas funções sempre iniciam com a letra “f” –  referente a file (arquivo em inglês)
  69. 69. Funções de arquivos em Php
  70. 70. Abrindo um arquivo •  Abre arquivos do servidor web •  Cria um atalho (ponteiro) para o arquivo e atribui a uma variável •  Parâmetros –  Nome do arquivo –  Modificador de acesso $p = fopen("casa.txt", "w");
  71. 71. Modificadores de Acesso Modificador Tipo Descrição “r” Somente leitura O programa pode ler o arquivo “w” Escrever Escreve no arquivo, sobrescreve se ele já existe “a” Adicionar Escreve no fim do arquivo “r+” “w+” Ler e escrever
  72. 72. Escrevendo em um arquivo •  Parâmetros –  Ponteiro para o arquivo –  Texto a ser escrito fputs($p, $texto);
  73. 73. Fechando um arquivo •  A função fclose() diz ao sistema que o seu arquivo já foi escrito e pode ser fechado •  Parâmetros –  Ponteiro para um arquivo fclose($p); •  IMPORTANTE: –  O programa só salva realmente no arquivo depois de fclose()
  74. 74. Tudo junto - Criando um arquivo •  Vamos criar um programa em PHP que cria um arquivo de texto no diretório. •  Depois vamos usar funções de arquivo para ler o arquivo recém-criado
  75. 75. salvarPoema.php <html> <head><title>Salvar Poema</title></head> <body> <? $poema = “Casa do Tempo Perdido, Drummond Bati no portão do tempo perdido, ninguém atendeu. Bati segunda vez e mais outra e mais outra. Resposta nenhuma. “; $p = fopen("casa.txt", "w"); fputs($p, $poema); fclose($p); ?> Arquivo Criado com Sucesso!!! </body> </html>
  76. 76. Carregando um Arquivo
  77. 77. Verificando o fim do Arquivo •  Geralmente você não sabe o tamanho do arquivo •  fgets() –  Pega linha por linha do arquivo $linha = fgets($p); •  feof() –  Indica o fim do arquivo while (!feof($p))
  78. 78. carregarPoema.php <html> <head> <title>Carregar Poema</title> </head> <body> <? $c = fopen("casa.txt", "r"); $linha = fgets($c); print "<h1>$linha</h1>n"; while (!feof($c)){ $linha = fgets($c); print "$linha <br />n"; } fclose($c); ?> </body> </html>
  79. 79. carregarPoema.php  NUMERANDO <html> <head> <title>Carregar Poema</title> </head> <body> <? $c = fopen("casa.txt", "r"); $linha = fgets($c); print "<h1>$linha</h1>n"; $i = 1; while (!feof($c)){ $linha = fgets($c); print “$i. $linha <br />n"; $i++; } fclose($c); ?> </body> </html>
  80. 80. Trabalhando com diretórios
  81. 81. A função openDir() •  Para usar diretórios do servidor web •  Cria um atalho (ponteiro) para o diretório •  Parâmetros –  Caminho do diretório $d = opendir($diretorio);
  82. 82. A função chDir() •  Muda o diretório atual para o diretório especificado como parâmetro •  Parâmetros –  Caminho do diretório chdir($diretorio);
  83. 83. A função readDir() •  Recupera o nome do próximo arquivo dentro do diretório •  Parâmetros –  Ponteiro para diretório $arquivoAtual = readDir($d);
  84. 84. listandoDiretorio.php <html> <head><title>Listar Arquivos</title></head> <body> <h1>Listando Arquivos</h1> <? $diretorio =“."; $d = opendir($diretorio); chdir($diretorio); $atual = true; while ($atual!= false){ $atual = readDir($d); $arquivos[] = $atual; } foreach ($arquivos as $nome){ print “<a href=”$nome”>$nome</a> <br />”; } ?> </body> </html>
  85. 85. Selecionando Arquivos específicos •  Seleciona arquivos de acordo com um critério –  Expressões regulares no estilo Perl –  Cria um outro array $imagens = preg_grep("/jpg$|gif$/", $arquivos);
  86. 86. listandoDiretorio.php <html> <head><title>Album Simples</title></head> <body> <h1>Listando Arquivos</h1> <? $diretorio =“imagens"; $d = opendir($diretorio); chdir($diretorio); $arquivoAtual = true; while ($arquivoAtual != false){ $arquivoAtual = readDir($d); $arquivos[] = $arquivoAtual; } $arquivos = preg_grep("/jpg$|gif$/", $arquivos); foreach ($arquivos as $atual){ print “<a href=”$diretorio/$atual”> <img src=”$diretorio/$atual” width=”20” height=”20”></a> <br />”; } ?> </body> </html>
  87. 87. Concatenando palavras •  Operador de concatenação  . $vogais = “A” . “E” . “I” . “O” . “U”; print “$vogais”; $output .= “texto qualquer“; $output = $output . “texto qualquer”;
  88. 88. Álbum Simples
  89. 89. Preparando as Imagens •  Google •  3 Imagens de cachorro •  Tipo imagem –  jpg –  gif
  90. 90. albumSimples.php <html> <head> <title>Album Simples</title> </head> <body> <? $nomeDiretorio = "C:Arquivos de programasEasyPHP1-8www"; $dp = opendir($nomeDiretorio); chdir($nomeDiretorio); $arquivoAtual = true; while ($arquivoAtual !== false){ $arquivoAtual = readDir($dp); $arquivos[] = $arquivoAtual; }
  91. 91. albumSimples.php $imagens = preg_grep("/jpg$|gif$/", $arquivos); $output = ""; foreach ($imagens as $arquivoAtual){ $output .= “ <a href=$arquivoAtual> <img src="$arquivoAtual“ height=50 width=50> </a> “; } $fp = fopen(“imagens/albumSimples.html", "w"); fputs ($fp, $output); fclose($fp); print "<a href=imagens/albumSimples.html>Seu Album</a>n"; ?>
  92. 92. borderMaker.html <html> <head> <title>Escolha de Fonte</title> </head> <body> <center> <h1>Escolha de Fonte</h1> <h3>Demonstração de como ler os campos do um formulário HTML</h3>
  93. 93. borderMaker.html <form method = "post“ action = "borderMaker.php"> <h3>Texto a modificar</h3> <textarea name = “textoQualquer" rows = "10“ cols = "40">TEXTO QUALQUER </textarea>
  94. 94. borderMaker.html <table border =“2”> <tr> <td> <h3>Estilo da borda</h3> </td> <td colspan =“2”> <h3>Tamanho da borda</h3> </td> </tr>
  95. 95. borderMaker.html <tr> <td> <select name =“tipoBorda”> <option value = "ridge">ridge</option> <option value = "groove">groove</option> <option value = "double">double</option> <option value = "inset">inset</option> <option value = "outset">outset</option> </select> </td>
  96. 96. borderMaker.html <td> <select size =“5” name = “tamanhoBorda”> <option value = "1">1</option> <option value = "2">2</option> <option value = "3">3</option> <option value = "5">5</option> <option value = "10">10</option> </select> </td>
  97. 97. borderMaker.html <td> <input type = "radio“ name = “tipoMedida“ value = "px">pixels<br> <input type = "radio“ name = " tipoMedida“ value = "pt">points<br> <input type = "radio“ name = " tipoMedida“ value = "cm">centimeters<br> <input type = "radio“ name = " tipoMedida“ value = "in">inches<br> </td> </tr> </table>
  98. 98. borderMaker.html <input type = "submit“ value = "Mostre-me"> </form> </center> </body> </html>
  99. 99. borderMaker.php <html> <head><title>Sua Borda</title></head> <body> <h1>Your Output</h1> <center> <? $estilo = <<<HERE "border-width:$tamanhoBorda$tipoMedida; border-style:$tipoBorda; border-color:green“ HERE;
  100. 100. borderMaker.php print "<div style = $estilo>"; print $textoQualquer; print "</div>"; ?> </center> </body> </html>
  101. 101. Alterando as informações recebidas
  102. 102. A função file() •  file() –  Não usa ponteiros –  Coloca o conteúdo do arquivo em um array –  Cada linha ocupa um espaço do array –  Não indicado para arquivos muito grandes $poema = file($arquivo);
  103. 103. O comando foreach() •  foreach() – Laço (loop) para percorrer um array foreach ($poema as $linha){ $linha = str_replace("r", "w", $linha); $linha = str_replace("s", "w", $linha); $output .= rtrim($linha) . "<br>n"; }
  104. 104. O comando str_replace() •  str_replace() – Substitui certas partes da string por outra foreach ($poema as $linhaAtual){ $linhaAtual =str_replace("r", "w", $linhaAtual); $linhaAtual = str_replace("s", "w", $linhaAtual); ... } Casa do tempo perdido  Casa do tempo pewdido Casa do tempo pewdido  Cawa do tempo pewdido
  105. 105. Cortando as sobras •  rtrim() –  Retira espaços em branco do lado direito da String –  rtrim()  Right Trim •  Variante –  ltrim()  Left Trim
  106. 106. bagucando.php <html> <head><title>Bagunçando</title></head> <body> <? $arquivo = "casa.txt"; $poema = file($arquivo); $output = ""; foreach ($poema as $linha){ $linha = str_replace("r", "w", $linha); $linha = str_replace("s", "w", $linha); $output .= rtrim($linha) . "<br>n"; } $output .= "Tudo modificado!<br>n"; print $output; ?> </body> </html>
  107. 107. Desafio •  Criar uma função que receba uma data no formato dd-mm-yyyy e devolva a data no formato dd/mm/yyyy function formataData($data) { $data = str_replace(“-”, “/”, $data); return $data; } formataData(“04-04-2004”);
  108. 108. Formatando Textos
  109. 109. Transfomando String em Array •  split() –  Transforma uma String em um Array •  list() –  Não é uma função –  É uma construção de dados –  Recebe o conteúdo de um array e põe em várias variáveis list($nome, $email) = split("t", $linha);
  110. 110. lista.dat
  111. 111. listaEmail.php <html> <head><title>Lista de Emails</title></head> <body> <form> <? $dados = file("lista.dat"); foreach($dados as $linha){ $linha = rtrim($linha); print "<h3>$linha</h3>"; list($nome, $email) = split("t", $linha); print "Nome: $nome";
  112. 112. listaEmail.php $messagem = “ Para: $email Caro $nome: Obrigado por participar do nosso forum. Atenciosamente, FA7. “; print "<pre>$messagem</pre>"; } ?> </body> </html>
  113. 113. QuizMachine
  114. 114. estilo.css .secao { border-style:solid; border-width:thin; border-color:#000066; width: 400px; background-color:#E5E5E5; }
  115. 115. QuizMachine
  116. 116. Página baseada em funções <html> <head> <title>Quiz Machine</title> </head> <body> <h1>Quiz Machine</h1> <? recuperarArquivos(); exibirTeste(); exibirEditar(); exibirLog(); ?> </body> </html>
  117. 117. Página baseada em funções <? include("funcoes.php"); ?> <html> <head> <title>Quiz Machine</title> </head> <body> <h1>Quiz Machine</h1> <? //recuperarArquivos(); exibirTeste(); //exibirEditar(); //exibirLog(); ?> </body> </html>
  118. 118. Exibindo um teste
  119. 119. funcoes.php function exibirTeste(){ global $arquivos; print " <center> <div class="secao"> <form action="jogarQuiz.php" method="post"> <h3>Jogue um quiz</h3> <p>Senha do quiz: <input type=“password" name="senha"> </p> <p>Quiz: <select name="pegarArquivo">";
  120. 120. funcoes.php $html = preg_grep("/htm$/", $arquivos); foreach ($html as $temp){ $quiz=substr($temp, 0, strlen($temp) - 4); print "<option value=$quiz>$quiz</option>n"; } print "</select></p> <p><input type="submit" value="ok"></p> </div> </center> </form> "; }
  121. 121. Recuperando arquivos <? function recuperarArquivos(){ global $dirPtr, $arquivos; chdir("."); $dirPtr = openDir("."); $arquivoAtual = readDir($dirPtr); while ($arquivoAtual !== false){ $arquivos[] = $arquivoAtual; $arquivoAtual = readDir($dirPtr); } }
  122. 122. Editando um quiz
  123. 123. funcoes.php function exibirEditar(){ global $arquivos; $mestres = preg_grep("/mestre$/", $arquivos); print " <center> <div class="secao"> <form action="editarQuiz.php" method="post"> <h3>Editar um quiz</h3> <p>Senha Administrativa: <input type="password" name="senha"/> </p> <p>Quiz: <select name="editarArquivo"> <option value="novo">Novo Quiz</option> ";
  124. 124. funcoes.php foreach ($mestres as $original){ $nome = substr($original, 0, strlen($original) - 8); print "<option value="$original">$nome</option>n"; } print " </select> <p><input type = "submit" value = "ok"></p> </form> </div> </center> "; }
  125. 125. Imprimindo uma variável na tela facilmente •  Para imprimir <? print $nomeDaVariavel; ?> •  Simplificademente para uma linha ou única variável <?= $nomeDaVariavel ?>
  126. 126. EditarQuiz
  127. 127. editarQuiz.php <html> <head> <title>Editar Quiz</ title> </head> <body> <? $dadosQuiz = ""; $senha = $_POST[‘senha’]; $editarArquivo = $_POST[‘editarArquivo’]; if ($senha != "phpfa7"){ print "Senha Inválida!"; } else { if ($editarArquivo == "novo"){ $nomeQuiz = "sample test"; $emailQuiz = "root@localhost"; $dadosQuiz = "q:a:b:c:d:correct"; $senhaQuiz = "php"; } else { $fp = fopen($editarArquivo, "r"); $nomeQuiz = fgets($fp); $emailQuiz = fgets($fp); $senhaQuiz = fgets($fp); while (!feof($fp)){ $dadosQuiz .= fgets($fp); } } ?>
  128. 128. editarQuiz.php <center> <div class="secao"> <form action="escreverQuiz.php" method="post"> <p>Nome do Quiz: <input type="text" name="nomeQuiz" value="<?= $nomeQuiz ?>"> </p> <p>Email do elaborador: <input type="text" name="emailQuiz" value="<?= $emailQuiz ?>"> </p> <p>Senha: <input type="password" name="senhaQuiz" value="<?= $senhaQuiz ?>"> </p> <p>Perguntas e Respostas:</p> <p> <textarea name="dados" rows="5" cols="30"><?= $dadosQuiz ?> </textarea> </p> <p><input type="submit" value="Salvar quiz"></p> </form> <? } ?> </div> </center>
  129. 129. editarQuiz.php <tr> <td rowspan = “1” colspan = “2”> <textarea name = "dadosQuiz“ rows = "10" cols = "60"> <?= $dadosQuiz ?> </textarea> </td> </tr> <tr> <td colspan = "2"> <input type = "submit“ value = "Salvar quiz"> </td> </tr> </table> </form> <? } ?> </body> </html>
  130. 130. editarQuiz.php $dadosQuiz = ""; if ($senha != "phpfa7"){ print "Senha Inválida!"; } else { if ($editarArquivo == "novo"){ $nomeQuiz = "sample test"; $emailQuiz = "root@localhost"; $dadosQuiz = "q:a:b:c:d:correct"; $senhaQuiz = "php"; } else { $fp = fopen($editarArquivo, "r"); $nomeQuiz = fgets($fp); $emailQuiz = fgets($fp); $senhaQuiz = fgets($fp); while (!feof($fp)){ $dadosQuiz .= fgets($fp); } }
  131. 131. Baixar Material •  http://www.fa7.edu.br/phpparainiciantes/ modulo2/quiz.zip •  Descompactar •  Abrir o escreverQuiz.php
  132. 132. escreverQuiz.php $arquivoBase = str_replace(" ", "_", $nomeQuiz); $arquivoHtml = $arquivoBase . ".html"; $arquivoMestre = $arquivoBase . ".mas"; $htfp = fopen($arquivoHtml, "w"); $dadosHtml = construirHTML(); fputs($htfp, $dadosHtml); fclose($htfp); $msfp = fopen($arquivoMestre, "w"); $dadosMestre = construirMestre(); fputs($msfp, $dadosMestre); print " <pre>$dadosMestre</pre> "; fclose($msfp);
  133. 133. escreverQuiz.php function construirMestre(){ global $nomeQuiz, $emailQuiz, $senhaQuiz, $dadosQuiz; $dadosMestre = $nomeQuiz . "n"; $dadosMestre .= $emailQuiz . "n"; $dadosMestre .= $senhaQuiz . "n"; $dadosMestre .= $dadosQuiz; return $dadosMestre; }
  134. 134. Percorrendo o arquivo $numeroQuestao = 1; foreach ($problemas as $problemaAtual){ list($questao, $respostaA, $respostaB, $respostaC, $respostaD, $correct) = explode (":", $problemaAtual);
  135. 135. Criando String delimitadas por caracteres •  Exemplo –  “Qual meu nome?:Dudu:Du:Edu” –  “Animais-cachorro-gato” list($variavel1, $variavel2, $varialvel3) = explode (“-”, $animais);
  136. 136. Pontuando o Quiz Arquivo Mestre(.mas) Meu Nome root@localhost nome Qual meu nome?:Eduardo:Marcelo:Álvaro:Mauro:A
  137. 137. Baixar Material •  http://www.fa7.edu.br/phpparainiciantes/ modulo2/quiz2.zip •  Descompactar •  Abrir o pontuarQuiz.php
  138. 138. Pontuando o Quiz Abrindo os Arquivos //abre o arquivo master correto para leitura $arquivoBase = str_replace(" ", "_", $nomeQuiz); $arquivoMas = $arquivoBase . ".mestre"; $msfp = fopen($arquivoMas, "r"); //Cria o nome do arquivo de log $logFile = $arquivoBase . ".log"; //As tres primeiras linhas são o nome, email do instrutor e senha $nomeQuiz = fgets($msfp); $emailQuiz = fgets($msfp); $senhaQuiz = fgets($msfp);
  139. 139. Pontuando o Quiz Criando uma Resposta //percorre as questoes em busca da $numeroCorretas = 0; $numeroQuestao = 1; while (!feof($msfp)){ $problemaAtual = fgets($msfp); list($questao, $respostaA, $respostaB, $respostaC, $respostaD, $correta) = split (":", $problemaAtual); $respostaCorreta[$numeroQuestao] = $correta; $numeroQuestao++;} fclose($msfp);
  140. 140. Pontuando o Quiz Checando a resposta do usuário //Confere as repostas do usuário for($numeroQuestao = 1; $numeroQuestao <= count($quest); $numeroQuestao++){ $jogada = $quest[$numeroQuestao]; $correta = $respostaCorreta[$numeroQuestao]; $correta = rtrim($correta); if ($jogada == $correta){ //Acertos e erros $numeroCorretas++; print "Problema nº $numeroQuestao está correta<br> n"; } else { print “ <font color = red>Problema nº $numeroQuestao está incorreta</font><br>n"; } // fim do if } // fim do for
  141. 141. Pontuando o Quiz Exibindo o resultado print “ Você tem $numeroCorretas correta(s)<br>n"; $porcentagem = ($numeroCorretas/count($quest)) * 100; print “ $porcentagem %<br>n";$hoje = date ("F j, Y, g:i a"); $location = getenv("REMOTE_ADDR"); //adiciona o resultado ao arquivo de log $lgfp = fopen($logFile, "a"); $linhaDeLog = $jogador . "t"; $linhaDeLog .= $hoje . "t"; $linhaDeLog .= $location . "t"; $linhaDeLog .= $numeroCorretas . "t"; $linhaDeLog .= $porcentagem . "n"; fputs($lgfp, $linhaDeLog); fclose($lgfp);?></html>
  142. 142. Visualizando LOG
  143. 143. visualizarLog.php <? if ($senha == "phpfa7"){ $linhas = file($logFile); print "<pre>n"; foreach ($linhas as $linha){ print $linha; } // fim foreach print "</pre>n"; } else { print “ <font color = "red“ size = +2> Você não tem permissão para exibir este arquivo </font>"; } // fim if ?>
  144. 144. Dúvidas?
  145. 145. Obrigado!

×