1 php mauro césar lopes 27-09-2009. 2 alterações dataalteração 30/10/2009 23/04/2010reescrita...

160
1 PHP Mauro César Lopes 27-09-2009

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

1

PHP

Mauro César Lopes

27-09-2009

Page 2: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

2

Alterações

Data Alteração30/10/2009

23/04/2010

Reescrita de slides buscando maior deixando o texto mais legível

Page 3: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

3

PHP - Histórico

Desenvolvido originalmente por Rasmus Lerdorf em 1994

Site oficial do PHP: http://www.php.net PHP 2.0 1995 PHP 3.0 Junho/1998 PHP 4.0 Maio/2000 PHP 5.0 Julho/2004

Page 4: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

4

Histórico

PHP/FI (Forms Interpreter) (1995)PHP/FI 2.0 (1997)PHP 3.0 (Junho de 1998) PHP 4.0 (maio de 2000)PHP 5.0 (Julho de 2007)

Page 5: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

5

Características do PHP

Código aberto Embutido no HTML Baseado no servidor Suporte a diversos Banco de Dados Portabilidade

Page 6: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

6

Áreas que os scripts PHP são usados

Scripts no lado do servidor (server-side)

Scripts de linha de comando (CLI) Aplicações Desktop (exemplo: PHP-

GTK)

Page 7: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

7

Sistemas operacionais

Linux Unix like: Solaris, OpenBSD, MacOS

X, ... Microsoft Windows

Page 8: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

8

Servidores HTTP

Apache IIS (Internet Information Service)

Page 9: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

9

Tipo de programação

Procedural Orientada a Objetos

Page 10: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

10

Funcionalidades do PHP

Gerar HTML Geração de imagens Arquivos PDF Animações em Flash

Page 11: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

11

Suporte a banco de dados

MySQL Oracle Interbase PostgresSQL Outros ...

Page 12: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

12

Criação de scripts PHP

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 !";?>

Page 13: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

13

Variáveis

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

Page 14: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

14

Comentários

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 */

Page 15: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

15

Tipos de dadosNã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

Page 16: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

16

Tipo Inteiro (integer ou long)

$x = 4567; # inteiro $y = -127; # inteiro negativo $o = 00116; # inteiro em representação

octal (base 8) $hex = 0x0F; # inteiro em

representação hexadecimal (base 16)

Page 17: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

17

Tipo de Ponto Flutuante (double ou float)

$PI=3.14; $MOL=6.02e23; # uso da notação

científica

Page 18: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

18

Tipo String

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>";

Page 19: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

19

Tipo String

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 simples) \" (aspa dupla)

Page 20: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

20

Tipo Booleano Expressa um valor lógico que pode ser

verdadeiro (TRUE) ou falso (FALSE) Exemplo:

<?php $valida=true; if($valida) { print "Validado\n"; }?>

Page 21: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

21

Arrays São estruturas de dados que podem

armazenar múltiplos valoresExemplo:

$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)

Page 22: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

22

Arrays

Podem ser definidos como mapeamentos ou vetores indexados

Exemplo:<?php

$cores[0]="Red";

$cores[1]="Green";

$cores[2]="Blue";

?>

Page 23: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

23

Arrays - tipos de índices

Ordenado baseado em número (começa no 0) (indexada numericamente)

Associativo formado por caracteres alfanuméricos (indexada por nome)

Page 24: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

24

Arrays – Criação e Inicialização

// 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";

Page 25: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

25

Arrays Associativos

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'

);

Page 26: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

26

Arrays Associativos – Criação e Inicialização

<?php $cor['red']=0; $cor['green']=255; $cor['blue']=0;?>

ou

<?php $cores = array('red'=>0, 'green'=>1, 'blue'=>2);?>

Page 27: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

27

Arrays - Funções

Usamos a função unset() para destruir todo o array.

Page 28: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

28

Arrays - Funções 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

Page 29: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

29

Pseudo-Types (Pseudo-Tipos)

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

Page 30: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

30

Função each

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";

}

Page 31: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

31

Listas

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

Page 32: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

32

Transformação de Tipos por coerção

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

Page 33: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

33

Transformação explicita de tipos

Feita via typecast (como em linguagem C)

Exemplo:$a = 6; # a é um integer (6)

$a = (float) 6; # é um float (6.0)

Page 34: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

34

Casts permitidos

(int), (integer) Integer

(real), (double), (float) Float

(string) String

(array) Array

(objeto) objeto

Page 35: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

35

Constantes

Uma constante é um identificador (nome) para um único valor que não se altera durante a execução de um script)

As constantes podem ser: Pré-definidas (pela própria biblioteca da linguagem) Definidas pelo usuário

Exemplos:

define("MOL", 6.14e22); # define a constante de nome MOLdefine("PI", 3.1415); # define a constante PIecho MOL;echo PI;

Page 36: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

36

Constantes - Exemplo

<?php

// Nomes de constantes válidosdefine("FOO",     "alguma coisa");define("FOO2",    "alguma outra coisa");define("FOO_BAR", "alguma coisa mais");

// Nomes de constantes inválidasdefine("2FOO",    "alguma coisa");

// Isto é válido, mas deve ser evitado:// O PHP pode vir a fornecer uma constante mágica// que danificará seu scriptdefine("__FOO__", "alguma coisa");

?>

Page 37: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

37

Constantes "Mágicas"

<?php

print __FILE__ ; # nome do arquivo echo "\n"; echo __LINE__; # nº da linha echo "\n"; echo __FUNCTION__; # nome da função echo "\n";

?>

Page 38: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

38

Operadores

Aritméticos Atribuição Bit a bit Lógicos Comparação Expressão condicional Incremento e decremento

Page 39: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

39

Operadores Aritméticos

+ Adição - Subtração * Multiplicação / Divisão % Resto da divisão (módulo)

Page 40: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

40

Operadores de Atribuição

= ($a=5); += ($a = $a + 5; $a+=5;) -= *= /= %= .=

Page 41: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

41

Operadores de Atribuição (2)

<<= >> &= |= ^=

Page 42: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

42

Operadores Bit a Bit

& (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

Page 43: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

43

Operadores Lógicos

and (e) or (ou) xor (ou-exclusivo) ! (negação) && (e) || (ou)

Page 44: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

44

Operadores de Comparação (ou Condicionais)

== (igualdade) != (diferença) < (menor que) > (maior que) <= (menor ou igual a) >= (maior ou igual a)

Page 45: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

45

Operador Ternário (ou Condicional)

(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";

Page 46: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

46

Operadores Unários

-operando : troca o sinal do operando ++ -- ++$a : pré-incremento (incrementa $a em um e depois retorna $a)

$a++ : pós-incremento --$a : pré-decremento $a-- : pós-decremento

Page 47: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

47

Precedência de Operadores- ! ~ ++ --- * / %- + - .- << >>- > < >= <=- == != <>- &- ^- |- &&- ||- ?:- = += -= *= /= %= &= ~= <<= >>= ^=- AND- XOR- OR

Page 48: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

48

Estruturas de Controle

Blocos Comandos condicionais Comando de repetição

Page 49: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

49

Blocos

São sequência de comandos delimitados por abre e fecha chaves ({ e })

Page 50: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

50

Comando Condicional

if (expressão) comando;

if(expressão) { comando1; ... comandoN;}

Page 51: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

51

Comando Condicional (2)

If (expressão) comando1;else comando2;

If(expressão) comando1; ... comandoN;else comando1; ... comandoN;endif

Page 52: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

52

Comando Condicional (3)

if(expressão1) { comando1;

}elseif(expressão2) { comando2;

}elseif(expressão3) { comando3;

}...else{ comandoN;

}

Page 53: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

53

Exemplo: Comando Condicional

<?php

$salario = 1000; $desconto = 0.10; // 10%

$total = $salario - $salario * $desconto;

if($total>900) { echo “Salário sujeito a recolhimento de imposto"; }

?>

Page 54: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

54

switch

switch (expressão) { case valor1: comando1; break; case valor2: comando2; break; default: comandoN; break;}

Page 55: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

55

Exemplo - switch<?php

$i = 1;

switch($i) { case 0: print "i é igual a 0"; break; case 1: print "i é igual a 1"; break; case 2: print "i é igual a 2"; break; default: print "i não é igual a 0, 1 ou 2"; break;}?>

Page 56: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

56

Comandos de repetição (laços)

while do .. while for foreach

Page 57: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

57

while

while (expressão) { comando;}

while (expressão) : comando1; ... comandoN;endwhile;

Page 58: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

58

Exemplo – comando while

<?php

$a = 1;

while ($a < 5) {

print $a;

$a++;

}

?>

Page 59: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

59

do..while

$a=0;

do

{

echo "a=$a\n";

$a++;

}

while ($a<=10);

Page 60: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

60

Exemplo – do .. while

<?php $acabou = false; do { print "loop ..."; $acabou=true; } while (!$acabou);?>

Page 61: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

61

for

for (expr1; expr2; expr3 ) {

comando1

..

comandoN

}

Page 62: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

62

foreach

Apresenta duas sintaxes:foreach ($nome_array as $elemento)

{

comandos

}

ouforeach ($nome_array as $chave => $valor)

{

comandos

}

Page 63: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

63

foreach (exemplo)

<?php

// define um array com cinco elementos $a = array(1,2,3,4,5);

foreach ($a as $valor) { echo "valor=$valor<br>"; }

?>

Page 64: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

64

foreach (exemplo)

<?php

$a = array ( "cod1" => 10, "cod2" => 20, "cod3" => 30, "cod4" => 40 );

foreach ($a as $chave => $valor) { echo "<p>chave=$chave, valor=$valor"; }

?>

Page 65: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

65

Comandos break e continue

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

Page 66: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

66

Comandos break e continue

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

Page 67: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

67

Exemplo - break

<?php# break.php

for($i=0; $i < 100; $i++) {

if($i == 10) { break; }

echo " $i ";

}

?>

Page 68: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

68

Exemplo - continue<?php

// exibe os números pares for($i=0; $i < 100; $i++) {

if($i % 2) { continue; }

echo " $i " . '<br>';

}

?>

Page 69: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

69

Funções

Definição Argumentos Passagem de parâmetros (valor ou

referência) Argumentos com valores pré-definidos

Page 70: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

70

Funções - Sintaxe

function nome_da_função(

[arg1, [arg2, ...,[argN]]]

)

{

comando1;

...

comandoN;

[ return valor_de_retorno ];

}

Page 71: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

71

Funções definidas pelo usuário

Uma função deve ser definida usando a sintaxe indicada abaixo:

<?php

function foo($arg_1, $arg_2, /* ..., */ $arg_n){   echo "Função Exemplo.\n";   return $retval;}

?>

Page 72: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

72

Valores Retorno

A declaração return é opcionalQualquer tipo poderá ser retornado

incluindo listas e objetos.

Page 73: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

73

Exemplo do uso do return

<?php

// calcula o quadrado de um número function quadrado($num) { return $num * $num;

}

echo quadrado(4);   // saída '16'.

?>

Page 74: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

74

Exemplo: Retornando um array com múltiplos elementos

<?php

function numeros_pequenos(){   return array (0, 1, 2);}

list($zero,$um,$dois)=numeros_pequenos();

?>

Page 75: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

75

Passagem de parâmetros

Há duas formas de passagem de parâmetros: por valor (by value) por referência (by reference)

O padrão é a passagem por valor.

Page 76: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

76

Exemplo de passagem de parâmetros<?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";

?>

Page 77: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

77

Definição de valores padrões na chamada de funções

<?phpfunction 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>";

?>

Page 78: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

78

Modificadores de variáveis

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

Page 79: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

79

Exemplo: uso de variável estática

<?php

function obtemProximo() { static $contador=0; return ++$contador; }

echo obtemProximo(),"\n"; // retorna 1 echo obtemProximo(),"\n"; // retorna 2 echo obtemProximo(),"\n"; // retorna 3

?>

Page 80: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

80

Variáveis de Ambiente

<?php

phpinfo();

?>

Page 81: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

81

Inclusão de arquivos include caso o arquivo não seja encontrado, é retornado

um aviso (“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 caso o arquivo não seja encontrado, é

retornado um erro fatal

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.

Page 82: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

82

Include x Require

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)

Page 83: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

83

Exemplo

biblioteca.php

<?php /* * função quadrado * retorna o quadrado de um número * */

function quadrado($num) {

return $num * $num; }

?>

Page 84: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

84

Exemplo

teste_include.php

<?php // carrega o arquivo com a função necessária

include 'biblioteca.php';

// imprime o quadrado de 2

echo quadrado(2);

?>

Page 85: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

85

Tipo de variável

string gettype(mixed var); Possíveis valores de retorno:

Integer Double String Array Object Unknown type

Page 86: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

86

Formulários HTML

<form

method="[GET|POST]"

action=""

name =""

>

...

</form>

Page 87: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

87

Tratando informações recebidas de Formulários

$_POST: array global que permite a leitura de variáveis passadas através de um formulário HTML usando método POST

$_GET : array global que permite a leitura de variáveis passadas na URL através de um formulário HTML usando método GET

Page 88: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

88

Método GET

$nome = $_GET['nome'] $email = $_GET['email'] echo "$_GET['nome']"; echo "$_GET['email']";

Page 89: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

89

Método POST

$_POST['nome'] $_POST['email'] echo "$_POST['nome']"; echo "$_POST['email']";

Page 90: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

90

Exemplo – Método POST

form.html<form method="POST"

action="script.php">Nome:<input name="nome"

type="text"></form>

script.php<?php$nome=$_POST["nome"];Echo

"<p>nome=$nome";</php>

Page 91: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

91

Exemplo – Método GET

form.html

<form method="GET" action="script.php">

Nome:<input name="nome"

type="text"></form>

script.php<?php$nome=$_GET["nome"];echo

"<p>nome=$nome";</php>

Page 92: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

92

Algumas funções úteis

string htmlspecialchars ( string $string [, int $quote_style [, string $charset]] ) Converte caracteres especiais para a realidade HTML

string stripslashes ( string $str ) Retorna uma string com as barras invertidas retiradas. (\ se torna ' e assim por diante.) Duas barras invertidas (\\) se tornam uma (\).

urlencode(string $str); Codifica uma URL urldecode(string $str); Decodifica qualquer

%## codificado na string. nl2br() — Insere quebras de linha HTML antes de

todas newlines em uma string

Page 93: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

93

Variáveis Superglobals$GLOBALS

Contém uma referencia a todas as variáveis disponíveis no escopo global no script. As chaves desse array são os nomes das variáveis globais.

$_SERVER Variáveis setadas pelo servidor web ou de outra forma relacionadas

diretamente ao ambiente de execução do ambiente corrente.

$_GET Variáveis providas pelo script via URL query string.

$_POST Variáveis providas pelo script via HTTP POST.

$_COOKIE Variáveis providas ao script via HTTP cookies.

Page 94: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

94

Variáveis Superglobals (2)$_FILES

Variáveis providas ao script através do upload de arquivos via POST usando HTTP.

$_ENV Variáveis de ambientes providas ao script.

$_REQUEST Variáveis providas ao script via mecanismos de entrada como GET,

POST e COOKIE. Veja também import_request_variables().

$_SESSION Variáveis que estão registradas a uma sessão de associada a um

script.

Page 95: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

95

Funções úteis na validação de formulários

bool empty ( mixed $var )– verifica se determinada variável esta vazia (nula)

strlen() – retorna o número de caracteres de uma string

strstr() – acha a primeira ocorrência de uma string. Se não encontrar retorna falso (FALSE)

bool isset ( mixed $var [, mixed $var [, $...]] )Informa se a variável foi iniciada (Retorna TRUE se var existir; FALSE senão)

Page 96: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

96

Cookies e Sessions

HTTP é um protocolo "sem estado" O que significa o protocolo HTTP ser

um protocolo "sem estado" ? Significa que ele não guarda informações

entre uma transação e outra (elas são independentes). Portanto é necessário um mecanismo que permita que sejam criadas "relações entre as transações"

Page 97: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

97

Cookies e Sessions

Cookie e Session são mecanismos que permitem armazenar informações enquanto o usuário navega entre diferentes páginas de um site

Page 98: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

98

Exemplos de uso de cookies e sessões

Autenticação de usuários Carrinho de compras Exibição de anúncios ou imagens Personalização de páginas

Page 99: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

99

Uso de Cookies

É um arquivo texto armazenado no computador do usuário (cliente) para ser posteriormente recuperado pelo servidor

Formado por um par nome/valor Tempo de validade: tempo no qual o cookie

estará armazenado no micro do usuário O uso de cookie poderá ser habilitado /

desabilitado pelo navegador (no cliente)

Page 100: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

100

Uso de cookies

bool setcookie (string nome [, string valor [, int validade [, string caminho [, string dominio [, int seguro]]]]]), onde:

nome: nome do cookie (obrigatório)valor: é o conteúdo do cookie (se não for fornecido o cookie será

removido)validade: tempo de validade do Cookiecaminho: caminho no servidor onde o cookie estará disponíveldomínio: domínio para o qual o cookie estará disponívelSeguro: 0 ou 1 (se 1 o cookie apenas será transmitido caso

segue uma conexão segura (HTTPS))

Page 101: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

101

Exemplo

setcookie("username","joao@net");

setcookie ("username"); // remove o cookie username

Obs: o envio de cookies deverá ser a primeira coisa a ser feita na transmissão de uma página (antes inclusive das tags <html> e <body>)

Page 102: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

102

Recuperação de Cookies

Uso do array superglobal $_COOKIE

Exemplo:

setcookie("username","joao@net");

E em uma outra página:$_COOKIE["username"]; // lê o valor do cookie

Page 103: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

103

Recuperação de Cookies

IMPORTANTE: os cookies não poderão ser usados dentro da própria página que os criou. Ele poderá apenas ser usado a partir do envio da próxima solicitação vinda do navegador do usuário (do cliente)

Page 104: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

104

Exemplo de uso: autenticação de usuários

"Autenticação é uma maneira que você tem de se certificar de que somente os usuários que possuem autorização estão acessando uma área restrita do seu site"

Page 105: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

105

Passos para Autenticação

Podemos dividir a autenticação de usuários com o uso de cookies em três passos:

1) Criação de uma página de login2) Criação de uma rotina de validação para

que seja usada nas páginas que fazem uso das áreas restritas

3) Criação de uma página de logout para os usuários autenticados a fim de realizar a exclusão do cookie.

Page 106: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

106

Exemplo de login usando cookies

login.html página inicial de login login.php processa o pedido de

login; valida usuário e senha no banco de dados

valida_cookies.inc valida os cookies pagina_inicial.php página validada logout.php limpa os cookies

armazenados no cliente; redireciona para página de login

Page 107: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

107

Sessão (Session)

É um período de tempo durante o qual uma pessoa navega pelas páginas de um site

Permitem o compartilhamento de informações entre diferentes páginas

Cada sessão possui um session id (SID) que é um identificador único

Page 108: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

108

Propagação do SessionID

Poderá ser feito por: cookies propagação de variáveis na URL

(endereço destino)

Page 109: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

109

Criação de Sessão no PHP

Manual Explícita (session_start) Implícita (ao registrar uma variável com a

função session_register) Automática

Depende da diretiva session.auto_start estar habilitada no arquivo php.ini

Page 110: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

110

Exemplo de Session<?phpsession_start();

if(!isset($_SESSION['contador'])) {

$_SESSION['contador']=1;}else { $_SESSION['contador']++;}

$contador= $_SESSION['contador'];

echo "<p>Contador=$contador";

$sid=session_id();

echo "<p>session_id= $sid";

?>

Page 111: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

111

Cookies x Sessões

Cookies

Tempo de duraçãoPode permanecer

armazenado por mais tempo (mesmo após o navegador ser eliminado)

Local de armazenamento

Pequenos arquivos armazenados na máquina do usuário

Sessões

Tempo de duraçãoDura enquanto o usuário

permanecer dentro do site

Local de armazenamento

Arquivos localizados no servidor (um arquivo por sessão)

Page 112: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

112

Cookies x Sessões

Cookies Sessões

Tempo de duração

Pode permanecer armazenado por mais tempo (mesmo após o navegador ser eliminado)

Dura enquanto o usuário permanecer dentro do site

Local de armazenamento

Pequenos arquivos armazenados na máquina do usuário

Arquivos localizados no servidor (um arquivo por sessão)

Page 113: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

113

Parâmetros de Configuração - Session

session  

Session Support enabled

Registered save handlers files user sqlite

Registered serializer handlers php php_binary wddx

Page 114: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

114

Parâmetros de Configuração - SessionDirective Local Value Master Value

session.auto_start Off Off

session.bug_compat_42 On On

session.bug_compat_warn On On

session.cache_expire 180 180

session.cache_limiter nocache nocache

session.cookie_domain no value no value

session.cookie_httponly Off Off

session.cookie_lifetime 0 0

session.cookie_path / /

session.cookie_secure Off Off

session.entropy_file no value no value

session.entropy_length 0 0

session.gc_divisor 100 100

session.gc_maxlifetime 1440 1440

session.gc_probability 1 1

session.hash_bits_per_character 4 4

session.hash_function 0 0

Page 115: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

115

Parâmetros de Configuração - Session

session.name PHPSESSID PHPSESSID

session.referer_check no value no value

session.save_handler files files

session.save_path C:\xampp\tmp C:\xampp\tmp

session.serialize_handler php php

session.use_cookies On On

session.use_only_cookies Off Off

session.use_trans_sid 0 0

Page 116: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

116

Comandos básicos de saída

echo é uma comando que imprime uma ou mais variáveis no console

print é uma função que imprime uma string no console

var_dump imprime o conteúdo de uma variável

print_r imprime o conteúdo de uma variável, mas num formato mais legível para o programador

Page 117: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

117

Manipulação de Arquivos

fopen feof fgets fwrite fclose file_put_contents file_get_contents

Page 118: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

118

Manipulação de Arquivos

file copy rename unlink file_exists is_file

Page 119: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

119

Manipulação de Diretórios

mkdir getcwd chdir rmdir opendir closedir readdir

Page 120: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

120

Manipulação de Arquivos e Diretórios

int fopen(string arquivo, string modo [, int usar_path ´, resource contexto]])

onde: arquivo: modo: usar_path: contexto:

Page 121: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

121

Manipulação de strings – algumas funções strtoupper() retorna a string usando

letras maiúsculas strtolower () retorna a string usando

letras minúsculas substr () retorna uma substring strpad () strrepeat () strlen () retorna o tamanho da string str_replace () substitui uma string por

outra str_pos () retorna a posição de início de

uma string em outra string

Page 122: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

122

Classes e Objetos

Classes Métodos

Page 123: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

123

Classe - Exemplo

class Complexo { private $real; private $imag; public function real() { return $this->real; } public function imag() { return $this->imag; }}

Page 124: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

124

Criação de Objetos

$z = new Complexo;

$parte_real = $z->real();

$parte_imag = $z->imag();

Page 125: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

125

Bibliografia

Dall'Oglio, P. PHP Programando com Orientação a Objetos. Novatec. 2007.

NIEDERAUER, J. Web Interativa com Ajax e PHP. Novatec, 2007.

NIEDERAUER, J. Desenvolvendo Web Sites com PHP. Novatec, 2007.

Manual do PHP. http://br.php.net/manual

Page 126: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

126

Backup Slides

Page 127: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

127

PHP e MySQL

Page 128: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

128

Conectando do BD MySQL

<?php

$conexao = mysql_connect(

"localhost",

"usuario",

"password");

?>

Page 129: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

129

Selecionando a Base de Dados

$nomebanco = mysql_select_db('teste', $conexao);

Page 130: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

130

Exemplo de Consulta em SQL

<?php

$resultado = mysql_query(

"select * from produto"

);

while($linha=mysql_fetch_array($resultado)

{

foreach($linha as $valor) {

echo "$valor<br />";

}

}

mysql_close($conexao);

?>

Page 131: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

131

Fechando uma conexão

mysql_close($conexao)

Page 132: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

132

mysql API

mysql_affected_rows() – retorna o número de linhas afetadas por uma operação

mysql_fetch_array() – armazena a linha atual em um array associativo

mysql_fetch_object() – retorna uma linha como um objetomysql_fetch_row() – armazena a linha atual em um arraymysql_result() – retorna uma coluna do resultadomysql_num_rows() – retorna o numero de linhas de uma consultamysql_num_fields() – retorna o numero de colunas de uma

consultamysql_field_name() – retorna o nome de uma coluna em uma

consulta

Page 133: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

133

mysql API

int mysql_connect(str host, str username, str password)

int mysql_select_db(str database [, int link_identifier])

int mysql_query(str query [, int link_identifier])

array mysql_fetch_array(int result [, int result_type])

Page 134: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

134

mysql API

array mysql_fetch_row(int result) int mysql_insert_id([int link_identifier]) --> retorna o número de linhas após execução de um comando select

int mysql_affected_rows([int link_identifier]) --> retorna o nº de linhas que foram afetados em uma tabela por comandos update, insert e delete

Page 135: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

135

mysql API

mysql_error()

Page 136: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

136

Exemplo

Aplicação de Cadastro de Alunos http://127.0.0.1/aluno/tela1.html

Apresentação de Notícias http://127.0.0.1/noticias2

Page 137: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

137

Exemplos de Funções

Page 138: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

138

Funções date e time

string date (

string $format

[, int $timestamp ]

)

Formata a data e a hora local int time ( void ) Retorna o timestamp Unix atual

Page 139: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

139

Exemplos

<?php echo date("Y-m-d",0),"\n"; echo date("Y-m-d",time()),"\n"; echo date("d/m/Y",time()),"\n"; echo date("d/m/y",time()),"\n"; echo date("d/m/y H:i:s",time()),"\n";?>

1969-12-312008-11-2727/11/200827/11/0827/11/08 09:20:11

Page 140: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

140

Função mktime

int mktime ([ int $hora [, int $minuto [, int $second [, int $mes [, int $dia [, int $ano [, int $is_dst ]]]]]]] ) Obtém um timestamp Unix para uma data

Page 141: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

141

Exemplo

<?php

echo date("d/m/Y H:i:s",

mktime(2, 12, 4, 10, 3, 01));

?>

Page 142: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

142

Função strtotime

$data_formatada = date("d/m/Y",strtotime($data));

echo "<td>$data_formatada</td>";

Page 143: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

143

Datas - MySQL

date_format(data, formato)

Exemplo:

SELECT *, date_format(data,'%d/%m/%Y') dt

FROM teste.gasto g

where date_format(data,'%d/%m/%Y')='26/11/2008'

Page 144: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

144

Exemplo

Seleciona os gastos entre duas datas:

SELECT *, date_format(data,'%d/%m/%Y') dtFROM teste.gasto gwhere date_format(data,'%Y%m%d') between '20081124' and '20081125'

Page 145: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

145

Questões

Qual é a diferença entre os comandos echo e print ? echo "1","2"; // ok print "1","2"; // erro: o comando print não

suporta ',' separando os operadores Qual é a diferença entre os comandos

require e include ?

Page 146: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

146

Cabeçalho de um script PHP

<?php---------?>

Page 147: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

147

Definição de variáveis

Em PHP não é necessário fazer a declaração de variáveis

Page 148: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

148

Delimitadores de string '' aspas simples (a string exibe seu valor literal)s='um $nome\n';

"" aspas duplas (as variáveis e caracteres de escape são avaliados e seus valores são substituídos)

s="um $nome\n";

`` aspas invertidas (apóstrofo) (executam a string como um comando do sistema operacional)

heredoc$str = <<<EOD Aqui podemos definir uma stringEOD;

Page 149: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

149

Definição de Constantes

bool define (string nome, misto valor [, bool case_insensitive])

Exemplo:define (OK, true);define(NOK, false);echo OK;echo NOK;

Page 150: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

150

Tipos de Variáveis

Numéricas Alfanuméricas (Strings) Arrays Objetos

Page 151: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

151

Classes

Classes: são agrupamentos de variáveis e funções

Objeto: é uma instância de uma classe

Page 152: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

152

Diferenças entre echo e print

TRUE 1 – qualquer valor não vazio é tratado como verdadeiro

FALSE 0

echo "1","2"; // ok print "1","2"; // erro: o comando print

não suporta ',' separando os operadores

Page 153: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

153

PHP 5.3

Migração http://docs.php.net/migration53 Manual do PHP http://docs.php.net/manual/pt_BR/inde

x.php Referência de Funções http://docs.php.net/manual/pt_BR/func

ref.php

Page 154: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

154

Links

Revista PHP Magazinehttp://www.phpmagazine.org.br

Page 155: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

155

Funções MySQL mysql_affected_rows — Obtém o número de linhas

atingidas na operação anterior do MySQL mysql_change_user — Muda o usuário da conexão ativa mysql_client_encoding — Retorna o nome do conjunto

de caracteres mysql_close — Fecha a conexão MySQL mysql_connect — Abre uma conexão com um servidor

MySQL mysql_create_db — Cria um banco de dados MySQL mysql_data_seek — Move o ponteiro interno do

resultado mysql_db_name — Obtém dados do resultado(nome de

banco de dados) mysql_db_query — Envia uma consulta MySQL mysql_drop_db — Exclui um banco de dados MySQL

Page 156: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

156

Funções MySQL mysql_errno — Retorna o valor numérico da mensagem de erro da

operação MySQL anterior mysql_error — Retorna o texto da mensagem de erro da operação

MySQL anterior mysql_escape_string — Escapa uma string para usar em uma

consulta MySQL mysql_fetch_array — Obtém uma linha como uma matriz

associativa, uma matriz numérica, ou ambas mysql_fetch_assoc — Obtém um linha do resultado como uma

matriz associativa mysql_fetch_field — Obtém informações sobre uma coluna de um

resultado e retorna como um objeto mysql_fetch_lengths — Obtém o tamanho de cada saída no

resultado mysql_fetch_object — Obtém o resultado de uma linha como um

objeto mysql_fetch_row — Obtém uma linha como uma array numérica mysql_field_flags — Obtém as flags associadas ao campo

especificado em um resultado

Page 157: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

157

Funções MySQL mysql_field_len — Retorna o tamanho do campo especificado mysql_field_name — Obtém o nome do campo especificado

em um resultado mysql_field_seek — Define o ponteiro do resultado para o

índice de campo especificado mysql_field_table — Obtém o nome da tabela na qual o campo

especificado esta mysql_field_type — Obtém o tipo do campo especificado em

um resultado mysql_free_result — Libera um resultado da memória mysql_get_client_info — Obtém informações do cliente MySQL mysql_get_host_info — Obtém informações do servidor MySQL mysql_get_proto_info — Obtém informações do protocolo

MySQL mysql_get_server_info — Obtém informações do servidor

MySQL

Page 158: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

158

Funções MySQL mysql_info — Obtém informação sobre a consulta mais

recente mysql_insert_id — Obtém o ID gerado pela operação INSERT

anterior mysql_list_dbs — Lista os bancos de dados disponíveis em um

servidor MySQL mysql_list_fields — Lista os campos de uma tabela MySQL mysql_list_processes — Lista os processos MySQL mysql_list_tables — Lista as tabelas em um banco de dados

MySQL mysql_num_fields — Obtém o numero de campos em um

resultado mysql_num_rows — Obtém o número de linhas em um

resultado mysql_pconnect — Abre uma conexão persistente com um

servidor MySQL mysql_ping — pinga uma conexão com o servidor ou

reconecta se não houver conexão

Page 159: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

159

Funções MySQL mysql_query — Envia uma consulta MySQL mysql_real_escape_string — Escapa os caracteres

especiais numa string para usar em um comando SQL, levando em conta o conjunto atual de caracteres.

mysql_result — Retorna dados do resultado mysql_select_db — Seleciona um banco de dados

MySQL mysql_set_charset — Sets the client character set mysql_stat — Retorna o status atual do sistema mysql_tablename — Retorna o nome da tabela do

campo mysql_thread_id — Returna o ID da thread atual mysql_unbuffered_query — Envia uma query para o

MySQL, sem retornar e colocar em buffer as linhas do resultado

Page 160: 1 PHP Mauro César Lopes 27-09-2009. 2 Alterações DataAlteração 30/10/2009 23/04/2010Reescrita de slides buscando maior deixando o texto mais legível

160

MySQLi

http://docs.php.net/manual/pt_BR/mysqli.summary.php