SlideShare une entreprise Scribd logo
1  sur  160
PHP


      Mauro César Lopes

           27-09-2009




                          1
Alterações
Data         Alteração
30/10/2009




                         2
PHP
   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/2004


                                            3
Características do PHP
   Código aberto
   Embutido no HTML
   Baseado no servidor
   Suporte a diversos Banco de Dados
   Portabilidade




                                        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)




                                    5
Áreas que os scripts PHP são usados

   Scripts no lado do servidor (server-side)
   Scripts de linha de comando
   Aplicações Desktop




                                                6
Sistemas operacionais
   Linux
   Unix like: Solaris, OpenBSD, MacOS X, ...
   Microsoft Windows




                                                7
Servidores HTTP
   Apache
   IIS (Internet Information Service)




                                         8
Tipo de programação
   Procedural
   Orientada a Objetos




                          9
Funcionalidades do PHP
   Gerar HTML
   Geração de imagens
   Arquivos PDF
   Animações em Flash




                         10
Suporte a banco de dados
   MySQL
   Oracle
   Interbase
   PostgresSQL
   Outros
   ...



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

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




                                          14
Tipos de dados
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



                                                                                  15
Inteiros (integer ou long)
   $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)




                                              16
Ponto Flutuante (double ou float)

   $PI=3.14;
   $MOL=6.02e23; # uso da notação científica




                                            17
Strings
   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>";

                                                     18
Strings
   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)


                                                        19
Booleano
   Expressa um valor lógico que pode ser verdadeiro
    (TRUE) ou falso (FALSE)
   Exemplo:

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


                                                       20
Arrays
 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)

                                                    21
Arrays
 Podem ser definidos como mapeamentos ou
  vetores indexados
Exemplo:
<?php
 $cores[0]="Red";
 $cores[1]="Green";
 $cores[2]="Blue";
?>

                                        22
Arrays - tipos de índices
   Ordenado  baseado em número (começa
    no 0) (indexada numericamente)
   Associativo  formado por caracteres
    alfanuméricos (indexada por nome)




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

                                                     24
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'
);

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

ou

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




                                                    26
Arrays (3)
   Usamos a função unset() para destruir todo
    o array.




                                                 27
Funções de array
   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




                                                                        28
Pseudo-Types
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




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

                                                             30
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
                                                    31
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




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




                                        33
Casts permitidos
(int), (integer)            Integer

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

(string)                    String

(array)                     Array

(objeto)                    objeto

                                      34
Constantes
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;




                                                                    35
Constantes - Exemplo
<?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,   mas deve ser evitado:
     // O PHP pode vir   a fornecer uma constante mágica
     // que danificará   seu script
     define("__FOO__",   "alguma coisa");
?>




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

?>




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


                              38
Operadores Aritméticos
   + Adição
   - Subtração
   * Multiplicação
   / Divisão
   % Resto da divisão (módulo)




                                  39
Operadores de Atribuição
   = ($a=5);
   += ($a = $a + 5; $a+=5;)
   -=
   *=
   /=
   %=
   .=


                               40
Operadores de Atribuição (2)
   <<=
   >>
   &=
   |=
   ^=




                               41
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

                                             42
Operadores Lógicos
   and (e)
   or (ou)
   xor (ou-exclusivo)
   ! (negação)
   && (e)
   || (ou)



                         43
Operadores de Comparação (ou Condicionais)
   == (igualdade)
   != (diferença)
   < (menor que)
   > (maior que)
   <= (menor ou igual a)
   >= (maior ou igual a)



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

                                             45
Operadores Unários
   -oper : 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




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

                                        47
Estruturas de Controle
   Blocos
   Comandos condicionais
   Comando de repetição




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




                                            49
Comando Condicional
   if (expressão)
      comando;
   if(expressão) {
      comando1;
      ...
      comandoN;
    }



                      50
Comando Condicional (2)
   If (expressão)
      comando1;
    else
      comando2;
   If(expressão):
      comando1;
      ...
      comandoN;
    else
      comando1;
      ...
      comandoN;
    endif


                          51
Comando Condicional (3)
if(expressão1) {
    comando1;
}
elseif(expressão2) {
    comando2;
}
...
else{
    comandoN;
}



                          52
Exemplo
<?php

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

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

  if($total>900) {
    echo "";
  }

?>




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



                       54
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;
}
?>




                                              55
Comandos de repetição (laços)
   while
   do .. while
   for
   foreach




                                56
while
   while (expressão) {
      comando;
    }

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

                          57
Exemplo – comando while
<?php
   $a = 1;
   while ($a < 5) {
     print $a;
     $a++;
   }
?>


                          58
do..while
$a=0;
do
{
   echo "a=$an";
   $a++;
}
while ($a<=10);


                    59
Exemplo – do .. while
<?php
   $acabou = false;
   do
   {
      print "loop ...";
      $acabou=true;
   }
   while (!$acabou);
?>
                          60
for
for (expr1; expr2; expr3 ) {
  comando1
  ..
  comandoN
}




                               61
foreach
Apresenta duas sintaxes:
foreach ($nome_array as $elemento)
{
  comandos
}
ou
foreach ($nome_array as $chave => $valor)
{
  comandos
}

                                            62
foreach (exemplo)
<?php

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

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

?>
                                63
foreach (exemplo)
<?php

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

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

?>




                                            64
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




                                           65
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




                                             66
Exemplo - break
<?php
# break.php

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

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

    echo " $i ";

}

?>



                              67
Exemplo - continue
<?php

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

         if($i % 2) {
           continue;
         }

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

     }

?>




                                   68
Funções
   Definição
   Argumentos
   Passagem de parâmetros (valor ou
    referência)
   Argumentos com valores pré-definidos




                                           69
Funções - Sintaxe
function nome_da_função(
  [arg1, [arg2, ...,[argN]]]
)
{
  comando1;
  ...
  comandoN;
  [ return valor_de_retorno ];
}



                                 70
Funções definidas pelo usuário
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;
  }
?>



                                              71
Valores Retorno
A declaração return é opcional
Qualquer tipo poderá ser retornado incluindo
  listas e objetos.




                                               72
Exemplo do uso do return
<?php

  function quadrado($num)
  {
    return $num * $num;
  }

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

?>




                                       73
Exemplo: Retornando um array com múltiplos
elementos
<?php

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

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


?>




                                             74
Passagem de parâmetros
   Existem dois tipos de passagem de
    parâmetros:
       por valor (by value)
       por referência (by reference)
   O padrão é a passagem por valor.




                                        75
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=$an";

  $a = 1;
  echo incByRef($a,2); // retorna a=3
  echo "a=$an";

?>


                                          76
Definição de valores padrões na chamada de funções
<?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>";

?>


                                                77
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




                                                      78
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

?>




                                           79
Variáveis de Ambiente
<?php
   phpinfo();
?>




                        80
Inclusão de arquivos
   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.

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




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

     function quadrado($num)
     {
       return $num * $num;
     }

?>




                                       83
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);
?>



                                                 84
Tipo de variável
   string gettype(mixed var);
   Possíveis valores de retorno:
       Integer
       Double
       String
       Array
       Object
       Unknown type


                                    85
Formulários HTML
<form
  method="[GET|POST]"
  action=""
  name =""
>
...
</form>


                        86
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




                                            87
Método GET
   $nome = $_GET['nome']
   $email = $_GET['email']
   echo "$_GET['nome']";
   echo "$_GET['email']";




                              88
Método POST
   $_POST['nome']
   $_POST['email']
   echo "$_POST['nome']";
   echo "$_POST['email']";




                              89
Exemplo – Método POST
        form.html               script.php
<form method="POST"      <?php
  action="script.php">   $nome=$_POST["nome"];
Nome:                    Echo "<p>nome=$nome";
<input name="nome"       </php>
  type="text">
</form>




                                                 90
Exemplo – Método GET
        form.html               script.php
                         <?php
<form method="GET"       $nome=$_GET["nome"];
  action="script.php">   echo "<p>nome=$nome";
Nome:                    </php>
<input name="nome"
  type="text">
</form>




                                                 91
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


                                                                92
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.




                                                                                           93
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.




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


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



                                                         96
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




                                            97
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




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




                                                   99
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 Cookie
caminho: caminho no servidor onde o cookie estará disponível
domínio: domínio para o qual o cookie estará disponível
Seguro: 0 ou 1 (se 1 o cookie apenas será transmitido caso segue uma
   conexão segura (HTTPS))




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


                                                   101
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


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




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




                                            104
Passos para Autenticação
Podemos dividir a autenticação de usuários com o
   uso de cookies em três passos:
•  Criação de uma página de login
•  Criação de uma rotina de validação para que seja
   usada nas páginas que fazem uso das áreas
   restritas
•  Criação de uma página de logout para os
   usuários autenticados a fim de realizar a
   exclusão do cookie.



                                                 105
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


                                              106
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



                                                  107
Propagação do SessionID
Poderá ser feito por:
 cookies

 propagação de variáveis na URL (endereço

  destino)




                                             108
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




                                                       109
Exemplo de Session
<?php                               $contador= $_SESSION['contador'];
session_start();
                                    echo "<p>Contador=$contador";
if(!isset($_SESSION['contador']))
   {
  $_SESSION['contador']=1;          $sid=session_id();
}
else {                              echo "<p>session_id= $sid";
  $_SESSION['contador']++;
}
                                    ?>




                                                                    110
Cookies x Sessões
         Cookies                      Sessões

                              Tempo de duração
 Tempo de duração           Dura enquanto o usuário
Pode permanecer                permanecer dentro do site
  armazenado por mais         Local de armazenamento

  tempo (mesmo após o        Arquivos localizados no
  navegador ser eliminado)     servidor (um arquivo por
                               sessão)
 Local de armazenamento

Pequenos arquivos
  armazenados na máquina
  do usuário


                                                      111
Cookies x Sessões

                      Cookies                      Sessões
            Pode permanecer armazenado por     Dura enquanto o
 Tempo de   mais tempo (mesmo após o           usuário permanecer
 duração    navegador ser eliminado)           dentro do site


                                               Arquivos localizados no
 Local de                                      servidor (um arquivo
            Pequenos arquivos armazenados na
 armazena                                      por sessão)
            máquina do usuário
 mento




                                                                         112
Parâmetros de Configuração - Session
                   session
Session Support                       enabled
Registered save handlers           files user sqlite
Registered serializer handlers   php php_binary wddx




                                                       113
Parâmetros de Configuração - Session
                Directive         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         114
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:xampptmp   C:xampptmp

session.serialize_handler       php            php

session.use_cookies             On             On

session.use_only_cookies        Off            Off

session.use_trans_sid            0              0

                                                          115
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




                                                 116
Manipulação de Arquivos
   fopen
   feof
   fgets
   fwrite
   fclose
   file_put_contents
   file_get_contents




                          117
Manipulação de Arquivos
   file
   copy
   rename
   unlink
   file_exists
   is_file



                          118
Manipulação de Diretórios
   mkdir
   getcwd
   chdir
   rmdir
   opendir
   closedir
   readdir


                            119
Manipulação de Arquivos e Diretórios


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



                                                   120
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

                                                      121
Classes e Objetos
   Classes
   Métodos




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



                             123
Criação de Objetos
$z = new Complexo;
$parte_real = $z->real();
$parte_imag = $z->imag();




                            124
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



                                              125
Backup Slides




                126
PHP e MySQL




              127
Conectando do BD MySQL
<?php
   $conexao = mysql_connect(
     "localhost",
     "usuario",
     "password");
?>



                               128
Selecionando a Base de Dados




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




                                            129
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);
?>



                                                130
Fechando uma conexão
   mysql_close($conexao)




                            131
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 objeto
mysql_fetch_row() – armazena a linha atual em um array
mysql_result() – retorna uma coluna do resultado
mysql_num_rows() – retorna o numero de linhas de uma consulta
mysql_num_fields() – retorna o numero de colunas de uma
  consulta
mysql_field_name() – retorna o nome de uma coluna em uma
  consulta



                                                              132
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])



                                        133
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


                                        134
mysql API
   mysql_error()




                    135
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




                                            136
Exemplos de Funções




                      137
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


                                 138
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-31
2008-11-27
27/11/2008
27/11/08
27/11/08 09:20:11




                                             139
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




                                          140
Exemplo
<?php
echo date("d/m/Y H:i:s",
 mktime(2, 12, 4, 10, 3, 01));
?>




                                 141
Função strtotime


   $data_formatada =
    date("d/m/Y",strtotime($data));
   echo "<td>$data_formatada</td>";




                                       142
Datas - MySQL
   date_format(date, format)

Exemplo:

SELECT *, date_format(data,'%d/%m/%Y') dt
FROM   teste.gasto g
where date_format(data,'%d/%m/%Y')='26/11/2008'




                                                  143
Exemplo
Seleciona os gastos entre duas datas:

SELECT *, date_format(data,'%d/%m/%Y') dt
FROM   teste.gasto g
where date_format(data,'%Y%m%d') between
       '20081124' and
       '20081125'




                                            144
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 ?



                                                      145
Cabeçalho de um script PHP
<?php
---
---
---
?>




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




                                            147
Delimitadores de string
 ''  aspas simples
s='um $nomen';

 ""  aspas duplas
s="um $nomen";

   `` aspas invertidas (apóstrofo)

 heredoc
$str = <<<EOD
 Aqui podemos definir
 uma string
EOD;

                                       148
Definição de Constantes
 bool define (string nome, misto valor [, bool
  case_insensitive])
 Exemplo:

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




                                             149
Tipos de Variáveis
   Numéricas
   Alfanuméricas (Strings)
   Arrays
   Objetos




                              150
Classes
   Classes: são agrupamentos de variáveis e
    funções
   Objeto: é uma instância de uma classe




                                               151
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


                                                  152
PHP 5.3
   Migração
   http://docs.php.net/migration53
   Manual do PHP
   http://docs.php.net/manual/pt_BR/index.php
   Referência de Funções
   http://docs.php.net/manual/pt_BR/funcref.
    php


                                            153
Links
 Revista PHP Magazine
http://www.phpmagazine.org.br




                                154
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

                                                         155
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
                                                                     156
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




                                                                         157
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




                                                                      158
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


                                                          159
MySQLi
   http://docs.php.net/manual/pt_BR/mysqli.sum




                                           160

Contenu connexe

Tendances (20)

Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Curso de PHP - Arrays
Curso de PHP - ArraysCurso de PHP - Arrays
Curso de PHP - Arrays
 
Minicurso php
Minicurso phpMinicurso php
Minicurso php
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
Java 05
Java 05Java 05
Java 05
 
Palestra python
Palestra pythonPalestra python
Palestra python
 
Introdução ao Ruby
Introdução ao RubyIntrodução ao Ruby
Introdução ao Ruby
 
Apostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em CApostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em C
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação Dinâmica
 
Standard ML / CPN ML
Standard ML / CPN MLStandard ML / CPN ML
Standard ML / CPN ML
 
Estrutura de Dados - Ponteiros
Estrutura de Dados - PonteirosEstrutura de Dados - Ponteiros
Estrutura de Dados - Ponteiros
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Fundamentos de C#
Fundamentos de C#Fundamentos de C#
Fundamentos de C#
 
Tecnicas programacao i_c_p3
Tecnicas programacao i_c_p3Tecnicas programacao i_c_p3
Tecnicas programacao i_c_p3
 
Biblioteca strings profª ms
Biblioteca strings profª msBiblioteca strings profª ms
Biblioteca strings profª ms
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Introducao Google GO
Introducao Google GOIntroducao Google GO
Introducao Google GO
 

En vedette

Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.
Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.
Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.Leonardo Soares
 
Aula 11 - Controle de sessão em PHP - Programação Web
Aula 11  - Controle de sessão em PHP - Programação WebAula 11  - Controle de sessão em PHP - Programação Web
Aula 11 - Controle de sessão em PHP - Programação WebDalton Martins
 
Introdução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPIntrodução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPLeonardo Soares
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosGeorge Mendonça
 
Briefing comercial2
Briefing comercial2Briefing comercial2
Briefing comercial2Denis Katko
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHPPaulo Dayvson
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoLuiz Junior
 

En vedette (10)

Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.
Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.
Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.
 
Aula 11 - Controle de sessão em PHP - Programação Web
Aula 11  - Controle de sessão em PHP - Programação WebAula 11  - Controle de sessão em PHP - Programação Web
Aula 11 - Controle de sessão em PHP - Programação Web
 
Variáveis
VariáveisVariáveis
Variáveis
 
Introdução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPIntrodução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHP
 
Php
PhpPhp
Php
 
PHP: operadores e variáveis (TGPSI)
PHP: operadores e variáveis (TGPSI)PHP: operadores e variáveis (TGPSI)
PHP: operadores e variáveis (TGPSI)
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Briefing comercial2
Briefing comercial2Briefing comercial2
Briefing comercial2
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 

Similaire à Php

Similaire à Php (20)

Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
M5 php rc
M5 php rcM5 php rc
M5 php rc
 
Slides do cuso_php
Slides do cuso_phpSlides do cuso_php
Slides do cuso_php
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
 
Ruby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanosRuby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanos
 
Aula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQLAula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQL
 
2ª aula php
2ª aula php2ª aula php
2ª aula php
 
Aula4
Aula4Aula4
Aula4
 
Aprendendo PHP.pdf
Aprendendo PHP.pdfAprendendo PHP.pdf
Aprendendo PHP.pdf
 
Introdução ao PHP Parte 2
Introdução ao PHP Parte 2Introdução ao PHP Parte 2
Introdução ao PHP Parte 2
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básico
 
Php básico
Php básicoPhp básico
Php básico
 
Strings em php
Strings em phpStrings em php
Strings em php
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Ling c
Ling cLing c
Ling c
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Php 02 Primeiros Passos
Php 02 Primeiros PassosPhp 02 Primeiros Passos
Php 02 Primeiros Passos
 

Php

  • 1. PHP Mauro César Lopes 27-09-2009 1
  • 2. Alterações Data Alteração 30/10/2009 2
  • 3. PHP  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/2004 3
  • 4. Características do PHP  Código aberto  Embutido no HTML  Baseado no servidor  Suporte a diversos Banco de Dados  Portabilidade 4
  • 5. 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) 5
  • 6. Áreas que os scripts PHP são usados  Scripts no lado do servidor (server-side)  Scripts de linha de comando  Aplicações Desktop 6
  • 7. Sistemas operacionais  Linux  Unix like: Solaris, OpenBSD, MacOS X, ...  Microsoft Windows 7
  • 8. Servidores HTTP  Apache  IIS (Internet Information Service) 8
  • 9. Tipo de programação  Procedural  Orientada a Objetos 9
  • 10. Funcionalidades do PHP  Gerar HTML  Geração de imagens  Arquivos PDF  Animações em Flash 10
  • 11. Suporte a banco de dados  MySQL  Oracle  Interbase  PostgresSQL  Outros  ... 11
  • 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 !"; ?> 12
  • 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 13
  • 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 */ 14
  • 15. Tipos de dados 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 15
  • 16. Inteiros (integer ou long)  $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) 16
  • 17. Ponto Flutuante (double ou float)  $PI=3.14;  $MOL=6.02e23; # uso da notação científica 17
  • 18. Strings  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>"; 18
  • 19. Strings  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) 19
  • 20. Booleano  Expressa um valor lógico que pode ser verdadeiro (TRUE) ou falso (FALSE)  Exemplo: <?php $valida=true; if($valida) { print "Validadon"; } ?> 20
  • 21. Arrays  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) 21
  • 22. Arrays  Podem ser definidos como mapeamentos ou vetores indexados Exemplo: <?php $cores[0]="Red"; $cores[1]="Green"; $cores[2]="Blue"; ?> 22
  • 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) 23
  • 24. Arrays // 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"; 24
  • 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' ); 25
  • 26. Arrays Associativos <?php $cor['red']=0; $cor['green']=255; $cor['blue']=0; ?> ou <?php $cores=array('red'=>0, 'green'=>1, 'blue'=>2); ?> 26
  • 27. Arrays (3)  Usamos a função unset() para destruir todo o array. 27
  • 28. Funções de array  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 28
  • 29. Pseudo-Types 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 29
  • 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"; } 30
  • 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 31
  • 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 32
  • 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) 33
  • 34. Casts permitidos (int), (integer) Integer (real), (double), (float) Float (string) String (array) Array (objeto) objeto 34
  • 35. Constantes 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; 35
  • 36. Constantes - Exemplo <?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, mas deve ser evitado: // O PHP pode vir a fornecer uma constante mágica // que danificará seu script define("__FOO__", "alguma coisa"); ?> 36
  • 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"; ?> 37
  • 38. Operadores  Aritméticos  Atribuição  Bit a bit  Lógicos  Comparação  Expressão condicional  Incremento e decremento 38
  • 39. Operadores Aritméticos  + Adição  - Subtração  * Multiplicação  / Divisão  % Resto da divisão (módulo) 39
  • 40. Operadores de Atribuição  = ($a=5);  += ($a = $a + 5; $a+=5;)  -=  *=  /=  %=  .= 40
  • 41. Operadores de Atribuição (2)  <<=  >>  &=  |=  ^= 41
  • 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 42
  • 43. Operadores Lógicos  and (e)  or (ou)  xor (ou-exclusivo)  ! (negação)  && (e)  || (ou) 43
  • 44. Operadores de Comparação (ou Condicionais)  == (igualdade)  != (diferença)  < (menor que)  > (maior que)  <= (menor ou igual a)  >= (maior ou igual a) 44
  • 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"; 45
  • 46. Operadores Unários  -oper : 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 46
  • 47. Precedência de Operadores - ! ~ ++ -- - * / % - + - . - << >> - > < >= <= - == != <> - & - ^ - | - && - || - ?: - = += -= *= /= %= &= ~= <<= >>= ^= - AND - XOR - OR 47
  • 48. Estruturas de Controle  Blocos  Comandos condicionais  Comando de repetição 48
  • 49. Blocos  São sequência de comandos delimitados por abre e fecha chaves ({ e }) 49
  • 50. Comando Condicional  if (expressão) comando;  if(expressão) { comando1; ... comandoN; } 50
  • 51. Comando Condicional (2)  If (expressão) comando1; else comando2;  If(expressão): comando1; ... comandoN; else comando1; ... comandoN; endif 51
  • 52. Comando Condicional (3) if(expressão1) { comando1; } elseif(expressão2) { comando2; } ... else{ comandoN; } 52
  • 53. Exemplo <?php $salario = 1000; $desconto = 0.10; // 10% $total = $salario - $salario*$desconto; if($total>900) { echo ""; } ?> 53
  • 54. switch switch (expressão) { case valor1: comando1; break; case valor2: comando2; break; } 54
  • 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; } ?> 55
  • 56. Comandos de repetição (laços)  while  do .. while  for  foreach 56
  • 57. while  while (expressão) { comando; }  while (expressão) : comando1; ... comandoN; endwhile; 57
  • 58. Exemplo – comando while <?php $a = 1; while ($a < 5) { print $a; $a++; } ?> 58
  • 59. do..while $a=0; do { echo "a=$an"; $a++; } while ($a<=10); 59
  • 60. Exemplo – do .. while <?php $acabou = false; do { print "loop ..."; $acabou=true; } while (!$acabou); ?> 60
  • 61. for for (expr1; expr2; expr3 ) { comando1 .. comandoN } 61
  • 62. foreach Apresenta duas sintaxes: foreach ($nome_array as $elemento) { comandos } ou foreach ($nome_array as $chave => $valor) { comandos } 62
  • 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>"; } ?> 63
  • 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"; } ?> 64
  • 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 65
  • 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 66
  • 67. Exemplo - break <?php # break.php for($i=0; $i < 100; $i++) { if($i == 10) { break; } echo " $i "; } ?> 67
  • 68. Exemplo - continue <?php // exibe os números pares for($i=0; $i < 100; $i++) { if($i % 2) { continue; } echo " $i " . '<br>'; } ?> 68
  • 69. Funções  Definição  Argumentos  Passagem de parâmetros (valor ou referência)  Argumentos com valores pré-definidos 69
  • 70. Funções - Sintaxe function nome_da_função( [arg1, [arg2, ...,[argN]]] ) { comando1; ... comandoN; [ return valor_de_retorno ]; } 70
  • 71. Funções definidas pelo usuário 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; } ?> 71
  • 72. Valores Retorno A declaração return é opcional Qualquer tipo poderá ser retornado incluindo listas e objetos. 72
  • 73. Exemplo do uso do return <?php function quadrado($num) { return $num * $num; } echo quadrado(4); // saída '16'. ?> 73
  • 74. Exemplo: Retornando um array com múltiplos elementos <?php function numeros_pequenos() { return array (0, 1, 2); } list($zero,$um,$dois)=numeros_pequenos(); ?> 74
  • 75. Passagem de parâmetros  Existem dois tipos de passagem de parâmetros:  por valor (by value)  por referência (by reference)  O padrão é a passagem por valor. 75
  • 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=$an"; $a = 1; echo incByRef($a,2); // retorna a=3 echo "a=$an"; ?> 76
  • 77. Definição de valores padrões na chamada de funções <?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>"; ?> 77
  • 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 78
  • 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 ?> 79
  • 80. Variáveis de Ambiente <?php phpinfo(); ?> 80
  • 81. Inclusão de arquivos  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. 81
  • 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) 82
  • 83. Exemplo biblioteca.php <?php /* * função quadrado * retorna o quadrado de um número * */ function quadrado($num) { return $num * $num; } ?> 83
  • 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); ?> 84
  • 85. Tipo de variável  string gettype(mixed var);  Possíveis valores de retorno:  Integer  Double  String  Array  Object  Unknown type 85
  • 86. Formulários HTML <form method="[GET|POST]" action="" name ="" > ... </form> 86
  • 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 87
  • 88. Método GET  $nome = $_GET['nome']  $email = $_GET['email']  echo "$_GET['nome']";  echo "$_GET['email']"; 88
  • 89. Método POST  $_POST['nome']  $_POST['email']  echo "$_POST['nome']";  echo "$_POST['email']"; 89
  • 90. Exemplo – Método POST form.html script.php <form method="POST" <?php action="script.php"> $nome=$_POST["nome"]; Nome: Echo "<p>nome=$nome"; <input name="nome" </php> type="text"> </form> 90
  • 91. Exemplo – Método GET form.html script.php <?php <form method="GET" $nome=$_GET["nome"]; action="script.php"> echo "<p>nome=$nome"; Nome: </php> <input name="nome" type="text"> </form> 91
  • 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 92
  • 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. 93
  • 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. 94
  • 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) 95
  • 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" 96
  • 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 97
  • 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 98
  • 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) 99
  • 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 Cookie caminho: caminho no servidor onde o cookie estará disponível domínio: domínio para o qual o cookie estará disponível Seguro: 0 ou 1 (se 1 o cookie apenas será transmitido caso segue uma conexão segura (HTTPS)) 100
  • 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>) 101
  • 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 102
  • 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) 103
  • 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" 104
  • 105. Passos para Autenticação Podemos dividir a autenticação de usuários com o uso de cookies em três passos: • Criação de uma página de login • Criação de uma rotina de validação para que seja usada nas páginas que fazem uso das áreas restritas • Criação de uma página de logout para os usuários autenticados a fim de realizar a exclusão do cookie. 105
  • 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 106
  • 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 107
  • 108. Propagação do SessionID Poderá ser feito por:  cookies  propagação de variáveis na URL (endereço destino) 108
  • 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 109
  • 110. Exemplo de Session <?php $contador= $_SESSION['contador']; session_start(); echo "<p>Contador=$contador"; if(!isset($_SESSION['contador'])) { $_SESSION['contador']=1; $sid=session_id(); } else { echo "<p>session_id= $sid"; $_SESSION['contador']++; } ?> 110
  • 111. Cookies x Sessões Cookies Sessões  Tempo de duração  Tempo de duração Dura enquanto o usuário Pode permanecer permanecer dentro do site armazenado por mais  Local de armazenamento tempo (mesmo após o Arquivos localizados no navegador ser eliminado) servidor (um arquivo por sessão)  Local de armazenamento Pequenos arquivos armazenados na máquina do usuário 111
  • 112. Cookies x Sessões Cookies Sessões Pode permanecer armazenado por Dura enquanto o Tempo de mais tempo (mesmo após o usuário permanecer duração navegador ser eliminado) dentro do site Arquivos localizados no Local de servidor (um arquivo Pequenos arquivos armazenados na armazena por sessão) máquina do usuário mento 112
  • 113. Parâmetros de Configuração - Session session Session Support enabled Registered save handlers files user sqlite Registered serializer handlers php php_binary wddx 113
  • 114. Parâmetros de Configuração - Session Directive 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 114
  • 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:xampptmp C:xampptmp session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid 0 0 115
  • 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 116
  • 117. Manipulação de Arquivos  fopen  feof  fgets  fwrite  fclose  file_put_contents  file_get_contents 117
  • 118. Manipulação de Arquivos  file  copy  rename  unlink  file_exists  is_file 118
  • 119. Manipulação de Diretórios  mkdir  getcwd  chdir  rmdir  opendir  closedir  readdir 119
  • 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: 120
  • 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 121
  • 122. Classes e Objetos  Classes  Métodos 122
  • 123. Classe - Exemplo class Complexo { private $real; private $imag; public function real() { return $this->real; } public function imag() { return $this->imag; } } 123
  • 124. Criação de Objetos $z = new Complexo; $parte_real = $z->real(); $parte_imag = $z->imag(); 124
  • 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 125
  • 127. PHP e MySQL 127
  • 128. Conectando do BD MySQL <?php $conexao = mysql_connect( "localhost", "usuario", "password"); ?> 128
  • 129. Selecionando a Base de Dados  $nomebanco = mysql_select_db('teste', $conexao); 129
  • 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); ?> 130
  • 131. Fechando uma conexão  mysql_close($conexao) 131
  • 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 objeto mysql_fetch_row() – armazena a linha atual em um array mysql_result() – retorna uma coluna do resultado mysql_num_rows() – retorna o numero de linhas de uma consulta mysql_num_fields() – retorna o numero de colunas de uma consulta mysql_field_name() – retorna o nome de uma coluna em uma consulta 132
  • 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]) 133
  • 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 134
  • 135. mysql API  mysql_error() 135
  • 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 136
  • 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 138
  • 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-31 2008-11-27 27/11/2008 27/11/08 27/11/08 09:20:11 139
  • 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 140
  • 141. Exemplo <?php echo date("d/m/Y H:i:s", mktime(2, 12, 4, 10, 3, 01)); ?> 141
  • 142. Função strtotime  $data_formatada = date("d/m/Y",strtotime($data));  echo "<td>$data_formatada</td>"; 142
  • 143. Datas - MySQL  date_format(date, format) Exemplo: SELECT *, date_format(data,'%d/%m/%Y') dt FROM teste.gasto g where date_format(data,'%d/%m/%Y')='26/11/2008' 143
  • 144. Exemplo Seleciona os gastos entre duas datas: SELECT *, date_format(data,'%d/%m/%Y') dt FROM teste.gasto g where date_format(data,'%Y%m%d') between '20081124' and '20081125' 144
  • 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 ? 145
  • 146. Cabeçalho de um script PHP <?php --- --- --- ?> 146
  • 147. Definição de variáveis  Em PHP não é necessário fazer a declaração de variáveis 147
  • 148. Delimitadores de string  ''  aspas simples s='um $nomen';  ""  aspas duplas s="um $nomen";  `` aspas invertidas (apóstrofo)  heredoc $str = <<<EOD Aqui podemos definir uma string EOD; 148
  • 149. Definição de Constantes  bool define (string nome, misto valor [, bool case_insensitive])  Exemplo: define (OK,true); define(NOK,false); echo OK; 149
  • 150. Tipos de Variáveis  Numéricas  Alfanuméricas (Strings)  Arrays  Objetos 150
  • 151. Classes  Classes: são agrupamentos de variáveis e funções  Objeto: é uma instância de uma classe 151
  • 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 152
  • 153. PHP 5.3  Migração  http://docs.php.net/migration53  Manual do PHP  http://docs.php.net/manual/pt_BR/index.php  Referência de Funções  http://docs.php.net/manual/pt_BR/funcref. php 153
  • 154. Links  Revista PHP Magazine http://www.phpmagazine.org.br 154
  • 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 155
  • 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 156
  • 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 157
  • 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 158
  • 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 159
  • 160. MySQLi  http://docs.php.net/manual/pt_BR/mysqli.sum 160

Notes de l'éditeur

  1. Para versão PHP 4.0, Ze ev Suraki e A nd i Gutmans reescreveram a maior parte do engine PHP, criando-se a ZEND Engine
  2. Hoje PHP é um acrônimo recursivo: Hypertext Preprocessor
  3. Tags de abertura e fechamento: &lt;?php e ?&gt;
  4. Toda variável é identificada pelo sinal &apos;$&apos; antes do nome O tipo da variável não precisa ser explicitamente definido
  5. O tipo da variável não precisa ser explicitamente definido
  6. O uso de aspas duplas permite a interpolação de variáveis, que consiste em incluir o valor de uma variável dentro de outra.
  7. Arrays são mapas ordenados. Um mapa é um tipo que relaciona valores a chaves . Este tipo é otimizado de várias maneiras, então você pode usá-lo como um array real, ou uma lista (vetor), hashtable (que é uma implementação de mapa), dicionário, coleção, pilha, fila e provavelmente mais. Como você pode ter outro array PHP como um valor, você pode facilmente simular árvores.
  8. As matrizes poderão ser indexadas: numericamente pelo nome
  9. Arrays Associativos são também conhecidos como Dictionaries ou Hashes
  10. Exemplo: &lt;?php $cores=array(&apos;red&apos;=&gt;0, &apos;green&apos;=&gt;1, &apos;blue&apos;=&gt;2); foreach( $cores as $key =&gt; $value) { echo &amp;quot;$key =&gt; $value\\n&amp;quot;; } ?&gt;
  11. Array_pop  retira e retorna o último elemento do array Array_push  insere um ou mais elementos no fim de um array Array_rand  retorna um ou mais elementos do array Array_reverse  retorna um array com ordem inversa Array_shift  retira e retorna o primeiro elemento de um array
  12. 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 mixed mixed indica que um parâmetro pode aceitar vários (mas não necessariamente todos) os tipos gettype(), por exemplo, aceita todos os tipos do PHP, enquanto str_replace () somente aceita strings e arrays. number number indica que um parâmetro pode ser tanto um integer ou float . callback Algumas funções como call_user_func () ou usort () aceitam callback de funções definidas por usuário como parâmetro. Funções de callback não podem ser somente simples funções, mas também métodos de objetos incluindo métodos estáticos de classes. Uma função PHP é simplesmente passado pelo seu nome como uma string. Você pode passar qualquer função nativa ou definida por usuário. Note que construtores da linguagem como array() , echo() , empty() , eval () , exit() , isset () , list() , print() ou unset() não podem ser chamados usando um callback. A method of an instantiated object is passed as an array containing an object as the element with index 0 and a method name as the element with index 1. Static class methods can also be passed without instantiating an object of that class by passing the class name instead of an object as the element with index 0. Apart from common user-defined function, create_function () can be used to create an anonymous callback function.
  13. 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 + &amp;quot;5&amp;quot;; Nesse exemplo a variável $a é numérica (integer) na primeira atribuição e string na segunda atribuição
  14. typecast = &amp;quot;Conversão de Tipos&amp;quot;
  15. Casts são conhecidos por &amp;quot;Moldagem&amp;quot; em português
  16. É aconselhável o uso de letras maiúsculas para dar nomes a constantes Somente dados escalares ( boolean , integer , float e string ) pode ser colocados em constantes A constant is an identifier (name) for a simple value. As the name suggests, that value cannot change during the execution of the script (except for magic constants , which aren&apos;t actually constants). A constant is case-sensitive by default. By convention, constant identifiers are always uppercase.
  17. NomeDescrição __LINE__ A linha atual do script. __FILE__ O caminho completo e nome do arquivo. Se utilizado dentro de um include, o nome do arquivo incluído será retornado. Desde o PHP 4.0.2, __FILE__ sempre contém um caminho absoluto com links simbólicos resolvidos enquanto em versões antigas ela continha um caminho relativo sob certas circunstâncias. __DIR__ O diretório do arquivo. Se usado dentro de um include, o diretório do arquivo incluído é retornado. Isto é equivalente a dirname(__FILE__) . Este nome do diretório não possui barra no final, a não ser que seja o diretório raiz. (Adicionado no PHP 5.3.0.) __FUNCTION__ O nome da função (Acrescentado no PHP 4.3.0). A partir do PHP 5 esta constante retorna o nome da função como ela foi declarada (sensível a maiúsculas e minúsculas). No PHP 4 sempre retorna o nome em minúsculas. __CLASS__ O nome da classe (Acrescentado no PHP 4.3.0). A partir do PHP 5 esta constante retorna o nome da função como ela foi declarada (sensível a maiúsculas e minúsculas). No PHP 4 sempre retorna o nome em minúsculas. __METHOD__ O nome do método de classe. (Acrescentado no PHP 5.0.0). O nome do método é retornado como foi declarado (sensível a maiúsculas e minúsculas). __NAMESPACE__ O nome do atual namespace (sensível a maiúsculas e minúsculas). Esta constante é definida em tempo de compilação (Adicionada no PHP 5.3.0).
  18. &amp;quot;||&amp;quot; tem precedência maior que &amp;quot;or&amp;quot; &amp;quot;&amp;&amp;&amp;quot; tem precedência maior que &amp;quot;and&amp;quot;
  19. Operadores de mesma prioridade são avaliados da esquerda para direita. A precedência dos operadores diminui de cima para baixo
  20. Qualquer script PHP é construído por uma série de instruções. Uma instrução pode ser uma atribuição, uma chamada de função, um &apos;loop&apos; (laço), uma instrução condicional, ou mesmo uma instrução que não faz nada (um comando vazio). Instruções geralmente terminam com um ponto e vírgula. Além disso, as instruções podem ser agrupados em um grupo de comandos através do encapsulamento de um grupo de comandos com chaves criando-se um bloco Um grupo de comandos (bloco) é uma instrução também.
  21. If($x == $y) Comando1; Comando2; If($x == $y) { Comando1; Comando2; }
  22. Avalia o valor de uma expressão para escolher qual bloco de instruções deverá ser executado
  23. Avalia uma expressão e caso esta seja verdadeira é executado o comando enquanto a condição permanecer verdadeira. O laço executará 0 ou mais vezes dependendo o valor inicial
  24. Condição avaliada no final do bloco. Bloco é executado pelo menos uma vez e termina quando a expressão for avaliada falsa.
  25. Condição inicial (valor inicial da variável contadora) Condição de parada (condição de execução. Enquanto for TRUE, o bloco de comandos será executado) atualização (valor a ser incrementado após cada execução)
  26. break cancela a execução do comando for, foreach, while, do-while ou switch atual. break aceita um argumento numérico opcional que diz a ele quantas estruturas aninhadas englobadas devem ser quebradas. continue é usado dentro de estruturas de loops para saltar o resto da iteração do loop atual e continuar a execução na avaliação e no início da próxima iteração.
  27. Uma função pode receber informações quando de sua chamada. Essas informações são os argumentos passados para função. Uma função poderá retornar um valor
  28. Values are returned by using the optional return statement. Any type may be returned, including lists and objects. This causes the function to end its execution immediately and pass control back to the line from which it was called. See return() for more information
  29. Include e Include_once retornam um warning no caso de erro, isto é, caso a página incluida não possa ser lida, porém a página continua em processamento Require e require_once retornam um erro fatal em caso de erro na inclusão da página
  30. Quando um formulário é submetido para um script PHP, qualquer variável do formulário será automaticamente disponível para o script
  31. htmlspecialchars(&lt;string&gt;); Esta função é idêntica a htmlspecialchars() em toda forma, exceto que com htmlentities() , todos caracteres que tem entidade HTML equivalente são convertidos para estas entidades. Se você está querendo decodificar (o inverso), você pode usar html_entity_decode(). stripslashes(&lt;string&gt;); urlencode(); Retorna uma string em que todos os caracteres não-alfanuméricos com exceção de -_. são substituídos com um sinal de porcento ( % ) seguido por dois dígitos hexadecimais e espaços codificados como um sinal de ( + ). É codificada do mesmo jeito que dados vindos de um formulário WWW é codificado, isto é, da mesma maneira que application/x-www-form-urlencoded urldecode(); Decodifica qualquer %## codificado na string.
  32. Várias variáveis pré-definidas no PHP são &amp;quot;superglobais&amp;quot;, que significa que elas estão disponível em todos escopos para todo o script. Não há necessidade de fazer global $variable; para acessá-lo dentro de funções ou métodos. Veja mais informações em: http://www.php.net/manual/pt_BR/language.variables.superglobals.php $GLOBALS Contains a reference to every variable which is currently available within the global scope of the script. The keys of this array are the names of the global variables. $GLOBALS has existed since PHP 3. $_SERVER Variables set by the web server or otherwise directly related to the execution environment of the current script. Analogous to the old $HTTP_SERVER_VARS array (which is still available, but deprecated). $_GET Variáveis providas pelo script via URL query string. Análogo ao array $HTTP_GET_VARS array (which is still available, but deprecated). $_POST Variáveis providas pelo script via HTTP POST. Análogo array $HTTP_POST_VARS (which is still available, but deprecated). $_COOKIE Variables provided to the script via HTTP cookies. Analogous to the old $HTTP_COOKIE_VARS array (which is still available, but deprecated).
  33. $_FILES Variables provided to the script via HTTP post file uploads. Analogous to the old $HTTP_POST_FILES array (which is still available, but deprecated). See POST method uploads for more information. $_ENV Variables provided to the script via the environment. Analogous to the old $HTTP_ENV_VARS array (which is still available, but deprecated). $_REQUEST Variables provided to the script via the GET, POST, and COOKIE input mechanisms, and which therefore cannot be trusted. The presence and order of variable inclusion in this array is defined according to the PHP variables_order configuration directive. This array has no direct analogue in versions of PHP prior to 4.1.0. See also import_request_variables() . Caution: Since PHP 4.3.0, FILE information from $_FILES does not exist in $_REQUEST. Note: When running on the command line , this will not include the argv and argc entries; these are present in the $_SERVER array. Um array associativo que por padrão contém informações de $_GET , $_POST e $_COOKIE . $_SESSION Variables which are currently registered to a script&apos;s session. Analogous to the old $HTTP_SESSION_VARS array (which is still available, but deprecated). See the Session handling functions section for more information.
  34. A função session_start() deve vir antes de qualquer saída HTML.
  35. http://docs.php.net/manual/pt_BR/book.mysql.php
  36. Veja mais funções em: http://www.php.net/manual/pt_BR/ref.datetime.php