CONSTRUÇÃO DE
PÁGINAS WEB III
Prof. Antonio Miguel Faustini Zarth
[email protected]
1
Construção de páginas web I
Construção de páginas web II
Construção de páginas web III
Durante o curso...
2
• Caderno para anotações
• Pen drive
• Software de autoria para páginas (x)HTML
• Notepad ++
• Editor de imagens
• Navegadores
• Internet Explorer
• Firefox
• Chrome
• Kit Apache MySQL e PHP
• xampp
Recursos
3
•
•
•
•
•
•
•
Construção dinâmica de páginas web.
Construção dinâmica de menus de seleção.
Manipulação de arquivos.
Conexão com bancos de dados.
Utilização de sessões e cookies.
Geração de relatórios.
Criação de uma aplicação web completa.
Ementa
4
• Desenvolvido originalmente por Rasmus Lerdorf em
1994
• site do PHP: http://www.php.net
• PHP 2.0 1995
• PHP 3.0 Junho/1998
• PHP 4.0 Maio/2000
• PHP 5.0 Julho/2007
• Versão atual: 5.5
PHP
5
•
•
•
•
•
Código aberto
Embutido no HTML
Baseado no servidor
Suporte a diversos Banco de Dados
Portabilidade
Características do PHP
6
• Scripts no lado do servidor (server-side)
• Scripts de linha de comando
• Aplicações Desktop
Áreas que os scripts PHP
são usados
7
1.
2.
3.
4.
5.
6.
PHP é uma linguagem interpretada ou compilada?
O que é uma linguagem interpretada e uma compilada?
O que é um programa executável?
PHP é executável?
O seu código fonte PHP é executável?
Quanto custa o PHP?
Review...
8
9
• Linux
• Unix like: Solaris, OpenBSD, MacOS X, ...
• Microsoft Windows
Sistemas operacionais
10
• Apache
• IIS (Internet Information Service)
Servidores HTTP
11
• Procedural
• Orientada a Objetos
Tipo de programação
12
• Gerar HTML
• Geração de imagens
• Arquivos PDF
Funcionalidades do PHP
13
•
•
•
•
•
•
MySQL
Oracle
Interbase
PostgresSQL
Outros
...
Suporte a banco de dados
14
• Todo trecho de programa PHP deve estar entre as tags
<?php e ?>para que o servidor Web saiba que esse
trecho trata-se de um código em PHP e que deve ser
processado
Exemplo:
<?php
echo "Hello, world !";
?>
Criação de scripts PHP
15
1. Crie um script PHP que receba uma temperatura em
Celsius via GET e imprima na escala Fahrenheit:
Fahrenheit = ((Celsius * 9)/5)+32
Review...
16
• Variáveis proveem uma maneira de atribuir um nome a
uma área de memória que conterá um dado
• Inicia por $ seguido de uma letra ou _ - é case sensitive,
isto é, sensível ao caso (distinção entre letras maiúsculas
e minúsculas)
• Por exemplo, a variável $Cor é completamente diferente
da variável $cor
Variáveis
17
• De uma linha:
// este é o comentário de uma linha
# este é o comentário de uma linha
• De mais de uma linha:
delimitado por /* e */
Comentários
18
Não é necessário declarar uma variável antes de usá-la. Basta atribuir um valor inicial. A
checagem de tipos é feita dinamicamente.
Exemplo:
$x=5;
$x="policamp";
$x=3.14;
•
•
•
•
•
Inteiro
Ponto flutuante
String
Array
Objeto
Checagem dinâmica de tipos
Tipos de dados
19
•
•
•
•
$x = 4567; # inteiro
$y = -127; # inteiro negativo
$o = 0116; # inteiro em representação octal (base 8)
$hex = 0x0F; # inteiro em representação hexadecimal
(base 16)
Inteiros (integer ou long)
20
• $PI=3.14;
• $MOL=6.02e23; # uso da notação científica
Ponto Flutuante (double ou float)
21
• Uma string é uma cadeia (sequência) de caracteres
delimitadas pelos caracteres " ou '
Exemplos:
"1", "Policamp", 'Campinas', 'Minas Gerais'
• Strings podem ser concatenadas usando o operador '.'
Exemplos:
$paragrafo_html = "<p>" . $texto . "</p>";
Strings
22
• Podem ser delimitadas por aspas simples (literal) ou
aspas duplas (onde há interpretação de varáveis e
caracteres especiais).
• Caracteres especiais:
•
•
•
•
•
•
•
\n (new line)
\r (carriage return)
\t (tab)
\\ (barra invertida)
\$ (cifrão)
\' (aspa simple)
\" (aspa dupla)
Strings
23
• Expressa um valor lógico que pode ser verdadeiro
(TRUE) ou falso (FALSE)
• Exemplo:
<?php
$valida=true;
if($valida) {
print "Validado\n";
}
?>
Booleano
24
• São estruturas de dados que podem armazenar
múltiplos valores
Exemplo:
$cores= array('vermelho', 'verde', 'azul');
$cor = $cores[1]; // retorna "verde" (2º elemento do
array)
$cores[1]='amarelo'; // atribui novo valor (ao 2º
elemento do array)
Arrays
25
• Podem ser definidos como mapeamentos ou vetores
indexados
Exemplo:
<?php
$cores[0]="Red";
$cores[1]="Green";
$cores[2]="Blue";
?>
Arrays
26
• Ordenado  baseado em número (começa no 0)
(indexada numericamente)
• Associativo  formado por caracteres alfanuméricos
(indexada por nome)
Arrays - tipos de índices
27
// cria e inicializa um array (indexada
numericamente)
$cores = array("Red", "Green", "Blue");
ou
// cria e inicializa um array usando índices
(explicitamente)
$cores = array(0=>'Red', 1=> "Green", 2=>"Blue");
ou
// cria e inicializa um array usando índices
(numéricos)
$cores[]="Red";
$cores[]="Green";
$cores[]="Blue";
Arrays
28
São conjunto ordenados de chaves e valores, onde cada
valor é acessado através de uma chave associada.
Exemplo:
$estados_e_capital = array (
'SP' => 'São Paulo',
'MG' => 'Belo Horizonte',
'RJ' => 'Rio de Janeiro',
'ES' => 'Vitória'
);
Arrays Associativos
29
<?php
$cor['red']=0;
$cor['green']=255;
$cor['blue']=0;
?>
ou
<?php
$cores=array('red'=>0, 'green'=>1, 'blue'=>2);
?>
Arrays Associativos
30
• Usamos a função unset() para destruir todo o array.
Arrays (3)
31
• array_pop($array)  retira e retorna o último elemento do array
• array_push ($array,$var)  insere um ou mais elementos no fim
de um array
• array_shift ($array)  retira e retorna o primeiro elemento de um
array
• array_unshift ($a,$val)  insere um novo elemento no inicio de
um array
• array_rand ($array)  retorna um ou mais elementos do array
• array_reverse ($array)  retorna um array com ordem inversa
• array_keys ($array)  retorna as chaves de um array
• array_values ($array)  retorna os valores de um array
• sizeof ()  retorna o número de elementos do array
• count ()  retorna a quantidade de elementos de um array
Funções de array
32
São tipos "falso" que ajudam da legibilidade:
• mixed: indica que o parâmetro pode aceitar múltiplos
tipos mas não necessariamente todos os tipos.
• number: indica que o parâmetro pode ser tanto integer ou
float
• callback
Pseudo-Types
33
• Função each  Retorna o par chave/valor corrente de um array
e avança o seu cursor
• Percorre os elemento de uma lista
$chamada = array (
"aluno1" => "francisco",
"alunos2" => "jose"
);
while(list($chave,$valor)=each($chamada)
{
echo "<p>Chave=[$chave],
Valor=[$valor]\n";
}
Função each
34
• Cria variáveis como se fossem arrays
• Assim como array(), não é exatamente uma função, e
sim uma construção da própria linguagem.
• list() é usada para criar uma lista de variáveis em
apenas uma operação.
• Exemplo:
list($a,$b,$c)=array("a","b","c");
É uma forma de atribuição de vários valores ao mesmo
tempo a diferentes variáveis
Listas
35
Coerção  é a conversão de um tipo em outro tipo
diferente mediante operação realizada com tipos
diferentes. Por exemplo:
$a=1;
$a = $a + "5";
Nesse exemplo a variável $a é numérica (integer) na
primeira atribuição e string na segunda atribuição
Transformação de Tipos por
coerção
36
• Feita via typecast (como em linguagem
C)
• Exemplo:
$a = 6;
# a é um integer (6)
$a = (float) 6; # é um float (6.0)
Transformação explicita de tipos
37
Casts permitidos
(int), (integer)
Integer
(real), (double), (float)
Float
(string)
String
(array)
Array
(objeto)
objeto
38
Uma constante é um identificador (nome) para um único valor que não se
altera durante a execução de um script)
• Pré-definidas
• Definidas pelo usuário
Exemplo:
define("MOL", 6.14e22);
define("PI", 3.1415);
echo MOL;
echo PI;
Constantes
39
<?php
// Nomes de constantes válidos
define("FOO",
"alguma coisa");
define("FOO2",
"alguma outra coisa");
define("FOO_BAR", "alguma coisa mais");
// Nomes de constantes inválidas
define("2FOO",
"alguma coisa");
// Isto é válido,
// O PHP pode vir
mágica
// que danificará
define("__FOO__",
?>
mas deve ser evitado:
a fornecer uma constante
seu script
"alguma coisa");
Constantes - Exemplo
40
<?php
print __FILE__ ; # nome do arquivo
echo "\n";
echo __LINE__; # nº da linha
echo "\n";
echo __FUNCTION__; # nome da função
echo "\n";
?>
Constantes "Mágicas"
41
•
•
•
•
•
•
•
Aritméticos
Atribuição
Bit a bit
Lógicos
Comparação
Expressão condicional
Incremento e decremento
Operadores
42
•
•
•
•
•
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Resto da divisão (módulo)
Operadores Aritméticos
43
•
•
•
•
•
•
•
= ($a=5);
+= ($a = $a + 5; $a+=5;)
-=
*=
/=
%=
.=
Operadores de Atribuição
44
•
•
•
•
•
<<=
>>
&=
|=
^=
Operadores de Atribuição
(2)
45
•
•
•
•
•
& (and) – operação E
| (or) – operação OU
^ (xor) – operação OU-exclusivo
~ (not) – operação NÃO
<< - deslocamento de bits a esquerda  multiplicação
por 2
• >> - deslocamento de bits a direita  divisão por 2
Operadores Bit a Bit
46
•
•
•
•
•
•
and (e)
or (ou)
xor (ou-exclusivo)
! (negação)
&& (e)
|| (ou)
Operadores Lógicos
47
•
•
•
•
•
•
== (igualdade)
!= (diferença)
< (menor que)
> (maior que)
<= (menor ou igual a)
>= (maior ou igual a)
Operadores de
Comparação (ou
Condicionais)
48
(expressão) ? (expressão2) : (expressão3);
Exemplo:
$a=5;
$a > 5 ? $b="1" : $b="0";
é equivalente a:
if($a>5)
$b="1";
else
$b="0";
Operador Ternário (ou
Condicional)
49
• -oper : troca o sinal do operando
• ++
• -• ++$a :
depois
• $a++ :
• --$a :
• $a-- :
pré-incremento (incrementa $a em um e
retorna $a)
pós-incremento
pré-decremento
pós-decremento
Operadores Unários
50
-
! ~ ++ -* / %
+ - .
<< >>
> < >= <=
== != <>
&
^
|
&&
||
?:
= += -= *= /= %= &= ~= <<= >>= ^=
AND
XOR
OR
Precedência de
Operadores
51
• Blocos
• Comandos condicionais
• Comando de repetição
Estruturas de Controle
52
• São sequência de comandos delimitados por abre e fecha
chaves ({ e })
Blocos
53
• if (expressão)
comando;
• if(expressão) {
comando1;
...
comandoN;
}
Comando Condicional
54
• If (expressão)
comando1;
else
comando2;
Comando Condicional (2)
55
if(expressão1) {
comando1;
}
elseif(expressão2) {
comando2;
}
...
else{
comandoN;
}
Comando Condicional (3)
56
<?php
$salario = 1000;
$desconto = 0.10; // 10%
$total = $salario - $salario*$desconto;
if($total>900) {
echo "";
}
?>
Exemplo
57
switch (expressão) {
case valor1:
comando1;
break;
case valor2:
comando2;
break;
}
switch
58
<?php
$i = 1;
switch($i) {
case 0:
print "i
break;
case 1:
print "i
break;
case 2:
print "i
break;
default:
print "i
break;
}
?>
é igual a 0";
é igual a 1";
é igual a 2";
não é igual a 0, 1 ou 2";
Exemplo - switch
59
•
•
•
•
while
do .. while
for
foreach
Comandos de repetição
(laços)
60
• while (expressão) {
comando;
}
while
61
<?php
$a = 1;
while ($a < 5) {
print $a;
$a++;
}
?>
Exemplo – comando while
62
$a=0;
do
{
echo "a=$a\n";
$a++;
}
while ($a<=10);
do..while
63
<?php
$acabou = false;
do
{
print "loop ...";
$acabou=true;
}
while (!$acabou);
?>
Exemplo – do .. while
64
for (expr1; expr2; expr3 ) {
comando1
..
comandoN
}
for
65
Apresenta duas sintaxes:
foreach ($nome_array as $elemento)
{
comandos
}
ou
foreach ($nome_array as $chave => $valor)
{
comandos
}
foreach
66
<?php
// define um array com cinco elementos
$a = array(1,2,3,4,5);
foreach ($a as $valor) {
echo "valor=$valor<br>";
}
?>
foreach (exemplo)
67
<?php
$a = array (
"cod1" => 10,
"cod2" => 20,
"cod3" => 30,
"cod4" => 40);
foreach ($a as $chave => $valor) {
echo "<p>chave=$chave, valor=$valor";
}
?>
foreach (exemplo)
68
break: pode ser usado em laços do, for e while.
O break "quebra" a execução e continua executando o
próximo comando
break [n]; // onde n indica o número de estruturas que
deverão ser finalizadas
Comandos break e
continue
69
• continue: interrompe a execução e avalia novamente a
condição de teste
continue [n]; // onde n indica o número de níveis que
deverão ser iniciados
Comandos break e
continue
70
<?php
# break.php
for($i=0; $i < 100; $i++) {
if($i == 10) {
break;
}
echo " $i ";
}
?>
Exemplo - break
71
<?php
// exibe os números pares
for($i=0; $i < 100; $i++) {
if($i % 2) {
continue;
}
echo " $i " . '<br>';
}
?>
Exemplo - continue
72
1. O caso default é requerido nas instruções de seleção
switch?
R: Não
2. A instrução break é requerida no caso padrão de uma
instrução de seleção switch?
R: Sim
3. A expressão (x>y && a<b) é true se a expressão x>y
for true ou a expressão a<b for true. Verdadeiro ou
falso?
R: falso
Review...
73
1. Uma expressão contendo o operador || é true se
qualquer um ou ambos operandos for true?
R: Verdadeiro
2. Uma expressão contendo o operador xor é true se
qualquer um ou ambos operandos for true?
R: Falso
Review...
74
Escreva uma instrução em PHP para:
1. Somar os números impares de 1 a 99 e exibir a soma.
2. Calcular o valor de X elevado a Y, sendo ambos
fornecidos via GET.
3. Receber um número via GET, defini-lo como uma
constante e informar textualmente se ele é primo.
4. Escreva um programa PHP que recebe 3 parâmetros via
GET. O primeiro e o segundo são números. O terceiro é
operador (multiplicar, somar, dividir, subtrair). Imprima o
resultado.
5. Faça um formulário HTML 5 para o programa acima.
Review...
75
•
•
•
•
Definição
Argumentos
Passagem de parâmetros (valor ou referência)
Argumentos com valores pré-definidos
Funções
76
function nome_da_função(
[arg1, [arg2, ...,[argN]]]
)
{
comando1;
...
comandoN;
[ return valor_de_retorno ];
}
Funções - Sintaxe
77
Uma função deve ser definida com a usando a sintaxe
indicada abaixo:
<?php
function foo($arg_1, $arg_2, /* ..., */
$arg_n)
{
echo "Função Exemplo.\n";
return $retval;
}
?>
Funções definidas pelo
usuário
78
A declaração return é opcional
Qualquer tipo poderá ser retornado incluindo listas e
objetos.
Valores Retorno
79
<?php
function quadrado($num)
{
return $num * $num;
}
echo quadrado(4);
// saída '16'.
?>
Exemplo do uso do return
80
<?php
function numeros_pequenos()
{
return array (0, 1, 2);
}
list($zero,$um,$dois)=numeros_pequenos();
Exemplo: Retornando um
array com múltiplos
elementos
?>
81
• Existem dois tipos de passagem de parâmetros:
• por valor (by value)
• por referência (by reference)
• O padrão é a passagem por valor.
Passagem de parâmetros
82
<?php
function incByValue($var, $valor) {
$var += $valor;
}
function incByRef(&$var, $valor) {
$var += $valor;
}
$a = 1;
echo incByValue($a,2); // retorna a=1
echo "a=$a\n";
$a = 1;
echo incByRef($a,2); // retorna a=3
echo "a=$a\n";
?>
Exemplo de passagem de
parâmetros
83
<?php
function incrementa($x, $valor=1)
{
$x += $valor;
return $x;
}
$a = 5;
echo "1. " . incrementa($a) . "<br>";
echo "2. " . incrementa($a,-4) . "<br>";
echo "3. " . incrementa($a,5) . "<br>";
Definição de valores
padrões na chamada de
funções
?>
84
• Variáveis estáticas (static)
• mantém o valor que lhes foi atribuído na última execução.
Usa o operador static.
• Variáveis variáveis ($$)
• Variáveis de ambiente
Modificadores de
variáveis
85
<?php
function obtemProximo() {
static $contador=0;
return ++$contador;
}
echo obtemProximo(),"\n"; // retorna 1
echo obtemProximo(),"\n"; // retorna 2
echo obtemProximo(),"\n"; // retorna 3
?>
Exemplo: uso de variável
estática
86
<?php
phpinfo();
?>
Variáveis de Ambiente
87
• include  caso o arquivo não seja encontrado, é retornado um
warning e o processamento da página continua
• require  caso o arquivo não seja encontrado, é retornado um
erro fatal
• include_once  se o arquivo já estiver sido incluso ele será
ignorado
• require_once
Obs:
• include e include_once retornam uma advertência (warning) no
caso de erro.
• require e require_once retornam um erro fatal em caso de erro.
Inclusão de arquivos
88
• O comando include é reavaliado a cada chamada
• A instrução require pode incluir apenas um arquivo (a
função require não inclui arquivos dinamicamente)
Include x Require
89
biblioteca.php
<?php
/*
* função quadrado
* retorna o quadrado de um número
*
*/
function quadrado($num)
{
return $num * $num;
}
?>
Exemplo
90
teste_include.php
<?php
// carrega o arquivo com a função necessária
include 'biblioteca.php';
// imprime o quadrado de 2
echo quadrado(2);
?>
Exemplo
91
• string gettype(mixed var);
• Possíveis valores de retorno:
•
•
•
•
•
•
Integer
Double
String
Array
Object
Unknown type
Tipo de variável
92
93
Download

Exemplo - Prof. Miguel