Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Php

2,333 views

Published on

  • Be the first to comment

Php

  1. 1. PHP Mauro César Lopes 27-09-2009 1
  2. 2. AlteraçõesData Alteração30/10/2009 2
  3. 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. 4. Características do PHP Código aberto Embutido no HTML Baseado no servidor Suporte a diversos Banco de Dados Portabilidade 4
  5. 5. HistóricoPHP/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. 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. 7. Sistemas operacionais Linux Unix like: Solaris, OpenBSD, MacOS X, ... Microsoft Windows 7
  8. 8. Servidores HTTP Apache IIS (Internet Information Service) 8
  9. 9. Tipo de programação Procedural Orientada a Objetos 9
  10. 10. Funcionalidades do PHP Gerar HTML Geração de imagens Arquivos PDF Animações em Flash 10
  11. 11. Suporte a banco de dados MySQL Oracle Interbase PostgresSQL Outros ... 11
  12. 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 processadoExemplo:<?php echo "Hello, world !";?> 12
  13. 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. 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. 15. Tipos de dadosNão é necessário declarar uma variável antes de usá-la. Basta atribuir um valor inicial. A checagem de tipos é feita dinamicamente.Exemplo:$x=5;$x="policamp";$x=3.14; Inteiro Ponto flutuante String Array ObjetoChecagem dinâmica de tipos 15
  16. 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. 17. Ponto Flutuante (double ou float) $PI=3.14; $MOL=6.02e23; # uso da notação científica 17
  18. 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. 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. 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. 21. Arrays São estruturas de dados que podem armazenar múltiplos valoresExemplo:$cores= array(vermelho, verde, azul);$cor = $cores[1]; // retorna "verde" (2º elemento do array)$cores[1]=amarelo; // atribui novo valor (ao 2º elemento do array) 21
  22. 22. Arrays Podem ser definidos como mapeamentos ou vetores indexadosExemplo:<?php $cores[0]="Red"; $cores[1]="Green"; $cores[2]="Blue";?> 22
  23. 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. 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. 25. Arrays AssociativosSã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. 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. 27. Arrays (3) Usamos a função unset() para destruir todo o array. 27
  28. 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. 29. Pseudo-TypesSã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. 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. 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. 32. Transformação de Tipos por coerçãoCoerçã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. 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. 34. Casts permitidos(int), (integer) Integer(real), (double), (float) Float(string) String(array) Array(objeto) objeto 34
  35. 35. ConstantesUma 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árioExemplo:define("MOL", 6.14e22);define("PI", 3.1415);echo MOL;echo PI; 35
  36. 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. 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. 38. Operadores Aritméticos Atribuição Bit a bit Lógicos Comparação Expressão condicional Incremento e decremento 38
  39. 39. Operadores Aritméticos + Adição - Subtração * Multiplicação / Divisão % Resto da divisão (módulo) 39
  40. 40. Operadores de Atribuição = ($a=5); += ($a = $a + 5; $a+=5;) -= *= /= %= .= 40
  41. 41. Operadores de Atribuição (2) <<= >> &= |= ^= 41
  42. 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. 43. Operadores Lógicos and (e) or (ou) xor (ou-exclusivo) ! (negação) && (e) || (ou) 43
  44. 44. Operadores de Comparação (ou Condicionais) == (igualdade) != (diferença) < (menor que) > (maior que) <= (menor ou igual a) >= (maior ou igual a) 44
  45. 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. 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. 47. Precedência de Operadores- ! ~ ++ --- * / %- + - .- << >>- > < >= <=- == != <>- &- ^- |- &&- ||- ?:- = += -= *= /= %= &= ~= <<= >>= ^=- AND- XOR- OR 47
  48. 48. Estruturas de Controle Blocos Comandos condicionais Comando de repetição 48
  49. 49. Blocos São sequência de comandos delimitados por abre e fecha chaves ({ e }) 49
  50. 50. Comando Condicional if (expressão) comando; if(expressão) { comando1; ... comandoN; } 50
  51. 51. Comando Condicional (2) If (expressão) comando1; else comando2; If(expressão): comando1; ... comandoN; else comando1; ... comandoN; endif 51
  52. 52. Comando Condicional (3)if(expressão1) { comando1;}elseif(expressão2) { comando2;}...else{ comandoN;} 52
  53. 53. Exemplo<?php $salario = 1000; $desconto = 0.10; // 10% $total = $salario - $salario*$desconto; if($total>900) { echo ""; }?> 53
  54. 54. switchswitch (expressão) { case valor1: comando1; break; case valor2: comando2; break;} 54
  55. 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. 56. Comandos de repetição (laços) while do .. while for foreach 56
  57. 57. while while (expressão) { comando; } while (expressão) : comando1; ... comandoN; endwhile; 57
  58. 58. Exemplo – comando while<?php $a = 1; while ($a < 5) { print $a; $a++; }?> 58
  59. 59. do..while$a=0;do{ echo "a=$an"; $a++;}while ($a<=10); 59
  60. 60. Exemplo – do .. while<?php $acabou = false; do { print "loop ..."; $acabou=true; } while (!$acabou);?> 60
  61. 61. forfor (expr1; expr2; expr3 ) { comando1 .. comandoN} 61
  62. 62. foreachApresenta duas sintaxes:foreach ($nome_array as $elemento){ comandos}ouforeach ($nome_array as $chave => $valor){ comandos} 62
  63. 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. 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. 65. Comandos break e continuebreak: pode ser usado em laços do, for e while.O break "quebra" a execução e continua executando o próximo comandobreak [n]; // onde n indica o número de estruturas que deverão ser finalizadas 65
  66. 66. Comandos break e continue continue: interrompe a execução e avalia novamente a condição de testecontinue [n]; // onde n indica o número de níveis que deverão ser iniciados 66
  67. 67. Exemplo - break<?php# break.phpfor($i=0; $i < 100; $i++) { if($i == 10) { break; } echo " $i ";}?> 67
  68. 68. Exemplo - continue<?php // exibe os números pares for($i=0; $i < 100; $i++) { if($i % 2) { continue; } echo " $i " . <br>; }?> 68
  69. 69. Funções Definição Argumentos Passagem de parâmetros (valor ou referência) Argumentos com valores pré-definidos 69
  70. 70. Funções - Sintaxefunction nome_da_função( [arg1, [arg2, ...,[argN]]]){ comando1; ... comandoN; [ return valor_de_retorno ];} 70
  71. 71. Funções definidas pelo usuárioUma 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. 72. Valores RetornoA declaração return é opcionalQualquer tipo poderá ser retornado incluindo listas e objetos. 72
  73. 73. Exemplo do uso do return<?php function quadrado($num) { return $num * $num; } echo quadrado(4); // saída 16.?> 73
  74. 74. Exemplo: Retornando um array com múltiploselementos<?php function numeros_pequenos() { return array (0, 1, 2); } list($zero,$um,$dois)=numeros_pequenos();?> 74
  75. 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. 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. 77. Definição de valores padrões na chamada de funções<?phpfunction incrementa($x, $valor=1){ $x += $valor; return $x;}$a = 5;echo "1. " . incrementa($a) . "<br>";echo "2. " . incrementa($a,-4) . "<br>";echo "3. " . incrementa($a,5) . "<br>";?> 77
  78. 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. 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. 80. Variáveis de Ambiente<?php phpinfo();?> 80
  81. 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_onceObs: 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. 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. 83. Exemplobiblioteca.php<?php /* * função quadrado * retorna o quadrado de um número * */ function quadrado($num) { return $num * $num; }?> 83
  84. 84. Exemploteste_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. 85. Tipo de variável string gettype(mixed var); Possíveis valores de retorno:  Integer  Double  String  Array  Object  Unknown type 85
  86. 86. Formulários HTML<form method="[GET|POST]" action="" name ="">...</form> 86
  87. 87. Tratando informações recebidas deFormulá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. 88. Método GET $nome = $_GET[nome] $email = $_GET[email] echo "$_GET[nome]"; echo "$_GET[email]"; 88
  89. 89. Método POST $_POST[nome] $_POST[email] echo "$_POST[nome]"; echo "$_POST[email]"; 89
  90. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 100. Uso de cookies bool setcookie (string nome [, string valor [, int validade [, string caminho [, string dominio [, int seguro]]]]]), onde:nome: nome do cookie (obrigatório)valor: é o conteúdo do cookie (se não for fornecido o cookie será removido)validade: tempo de validade do Cookiecaminho: caminho no servidor onde o cookie estará disponíveldomínio: domínio para o qual o cookie estará disponívelSeguro: 0 ou 1 (se 1 o cookie apenas será transmitido caso segue uma conexão segura (HTTPS)) 100
  101. 101. Exemplo setcookie("username","joao@net"); setcookie ("username"); // remove o cookie usernameObs: 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. 102. Recuperação de CookiesUso do array superglobal $_COOKIEExemplo:setcookie("username","joao@net");E em uma outra página:$_COOKIE["username"]; // lê o valor do cookie 102
  103. 103. Recuperação de CookiesIMPORTANTE: 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. 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. 105. Passos para AutenticaçãoPodemos 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. 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. 107. Sessão (Session)É um período de tempo durante o qual uma pessoa navega pelas páginas de um sitePermitem o compartilhamento de informações entre diferentes páginasCada sessão possui um session id (SID) que é um identificador único 107
  108. 108. Propagação do SessionIDPoderá ser feito por: cookies propagação de variáveis na URL (endereço destino) 108
  109. 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. 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. 111. Cookies x Sessões Cookies Sessões  Tempo de duração Tempo de duração Dura enquanto o usuárioPode 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 armazenamentoPequenos arquivos armazenados na máquina do usuário 111
  112. 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. 113. Parâmetros de Configuração - Session sessionSession Support enabledRegistered save handlers files user sqliteRegistered serializer handlers php php_binary wddx 113
  114. 114. Parâmetros de Configuração - Session Directive Local Value Master Valuesession.auto_start Off Offsession.bug_compat_42 On Onsession.bug_compat_warn On Onsession.cache_expire 180 180session.cache_limiter nocache nocachesession.cookie_domain no value no valuesession.cookie_httponly Off Offsession.cookie_lifetime 0 0session.cookie_path / /session.cookie_secure Off Offsession.entropy_file no value no valuesession.entropy_length 0 0session.gc_divisor 100 100session.gc_maxlifetime 1440 1440session.gc_probability 1 1session.hash_bits_per_character 4 4session.hash_function 0 0 114
  115. 115. Parâmetros de Configuração - Sessionsession.name PHPSESSID PHPSESSIDsession.referer_check no value no valuesession.save_handler files filessession.save_path C:xampptmp C:xampptmpsession.serialize_handler php phpsession.use_cookies On Onsession.use_only_cookies Off Offsession.use_trans_sid 0 0 115
  116. 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. 117. Manipulação de Arquivos fopen feof fgets fwrite fclose file_put_contents file_get_contents 117
  118. 118. Manipulação de Arquivos file copy rename unlink file_exists is_file 118
  119. 119. Manipulação de Diretórios mkdir getcwd chdir rmdir opendir closedir readdir 119
  120. 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. 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. 122. Classes e Objetos Classes Métodos 122
  123. 123. Classe - Exemploclass Complexo { private $real; private $imag; public function real() { return $this->real; } public function imag() { return $this->imag; }} 123
  124. 124. Criação de Objetos$z = new Complexo;$parte_real = $z->real();$parte_imag = $z->imag(); 124
  125. 125. Bibliografia DallOglio, 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
  126. 126. Backup Slides 126
  127. 127. PHP e MySQL 127
  128. 128. Conectando do BD MySQL<?php $conexao = mysql_connect( "localhost", "usuario", "password");?> 128
  129. 129. Selecionando a Base de Dados $nomebanco = mysql_select_db(teste, $conexao); 129
  130. 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. 131. Fechando uma conexão mysql_close($conexao) 131
  132. 132. mysql APImysql_affected_rows() – retorna o número de linhas afetadas por uma operaçãomysql_fetch_array() – armazena a linha atual em um array associativomysql_fetch_object() – retorna uma linha como um objetomysql_fetch_row() – armazena a linha atual em um arraymysql_result() – retorna uma coluna do resultadomysql_num_rows() – retorna o numero de linhas de uma consultamysql_num_fields() – retorna o numero de colunas de uma consultamysql_field_name() – retorna o nome de uma coluna em uma consulta 132
  133. 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. 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. 135. mysql API mysql_error() 135
  136. 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
  137. 137. Exemplos de Funções 137
  138. 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. 139. Exemplos<?php echo date("Y-m-d",0),"n"; echo date("Y-m-d",time()),"n"; echo date("d/m/Y",time()),"n"; echo date("d/m/y",time()),"n"; echo date("d/m/y H:i:s",time()),"n";?>1969-12-312008-11-2727/11/200827/11/0827/11/08 09:20:11 139
  140. 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. 141. Exemplo<?phpecho date("d/m/Y H:i:s", mktime(2, 12, 4, 10, 3, 01));?> 141
  142. 142. Função strtotime $data_formatada = date("d/m/Y",strtotime($data)); echo "<td>$data_formatada</td>"; 142
  143. 143. Datas - MySQL date_format(date, format)Exemplo:SELECT *, date_format(data,%d/%m/%Y) dtFROM teste.gasto gwhere date_format(data,%d/%m/%Y)=26/11/2008 143
  144. 144. ExemploSeleciona os gastos entre duas datas:SELECT *, date_format(data,%d/%m/%Y) dtFROM teste.gasto gwhere date_format(data,%Y%m%d) between 20081124 and 20081125 144
  145. 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. 146. Cabeçalho de um script PHP<?php---------?> 146
  147. 147. Definição de variáveis Em PHP não é necessário fazer a declaração de variáveis 147
  148. 148. Delimitadores de string  aspas simpless=um $nomen; ""  aspas duplass="um $nomen"; `` aspas invertidas (apóstrofo) heredoc$str = <<<EOD Aqui podemos definir uma stringEOD; 148
  149. 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. 150. Tipos de Variáveis Numéricas Alfanuméricas (Strings) Arrays Objetos 150
  151. 151. Classes Classes: são agrupamentos de variáveis e funções Objeto: é uma instância de uma classe 151
  152. 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. 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. 154. Links Revista PHP Magazinehttp://www.phpmagazine.org.br 154
  155. 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. 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. 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. 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. 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. 160. MySQLi http://docs.php.net/manual/pt_BR/mysqli.sum 160

×