Este documento apresenta uma aula introdutória sobre PHP, abordando conceitos como arquitetura cliente-servidor, sintaxe básica do PHP, formulários, variáveis, condicionais e loops. Contém exemplos práticos de programas simples em PHP e exercícios para fixar os conceitos.
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.
11. 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
12.
13. 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
14.
15. PHP & Arquivos
• Crie um arquivo txt na pasta www do
EasyPHP com o nome “dicas.txt”
16. 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
20. 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>
24. 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>
25. 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>’
32. 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>
34. 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>
37. 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>
38. 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
39. 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
45. 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>
46. 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”;
47. 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”>”;
}
}
49. 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
60. 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);
61. Arrays
• Variáveis são como copos
– Contém, guardam alguma coisa
– Valores
• Arrays são como bandejas de copos
63. Examinando o conteúdo
do Array com um loop
for ($i = 1; $i <= 5; $i++) {
print "$i: $camelPop[$i]<br>";
}
64. 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";
}
68. 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");
72. 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)
74. 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");
75. 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
76. Escrevendo em um arquivo
• Parâmetros
– Ponteiro para o arquivo
– Texto a ser escrito
fputs($p, $texto);
77. 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()
78. 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
79. 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>
81. 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))
85. 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);
86. 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);
87. A função
readDir()
• Recupera o nome do próximo arquivo dentro
do diretório
• Parâmetros
– Ponteiro para diretório
$arquivoAtual = readDir($d);
89. 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);
100. 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>
101. 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>
102. 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>
107. 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);
108. 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";
}
109. 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
110. Cortando as sobras
• rtrim()
– Retira espaços em branco do lado direito da
String
– rtrim() Right Trim
• Variante
– ltrim() Left Trim
112. 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”);
114. 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);
130. Imprimindo uma variável na tela facilmente
• Para imprimir
<? print $nomeDaVariavel; ?>
• Simplificademente para uma linha ou única
variável
<?= $nomeDaVariavel ?>
143. 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);
144. 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);
145. 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
146. 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>
148. 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
?>