Php

2,058 views
1,926 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,058
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 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
  • Hoje PHP é um acrônimo recursivo: Hypertext Preprocessor
  • Tags de abertura e fechamento: <?php e ?>
  • Toda variável é identificada pelo sinal '$' antes do nome O tipo da variável não precisa ser explicitamente definido
  • O tipo da variável não precisa ser explicitamente definido
  • 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.
  • 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.
  • As matrizes poderão ser indexadas: numericamente pelo nome
  • Arrays Associativos são também conhecidos como Dictionaries ou Hashes
  • Exemplo: <?php $cores=array('red'=>0, 'green'=>1, 'blue'=>2); foreach( $cores as $key => $value) { echo "$key => $value\\n"; } ?>
  • 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
  • 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.
  • 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
  • typecast = "Conversão de Tipos"
  • Casts são conhecidos por "Moldagem" em português
  • É 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't actually constants). A constant is case-sensitive by default. By convention, constant identifiers are always uppercase.
  • 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).
  • "||" tem precedência maior que "or" "&&" tem precedência maior que "and"
  • Operadores de mesma prioridade são avaliados da esquerda para direita. A precedência dos operadores diminui de cima para baixo
  • 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 'loop' (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.
  • If($x == $y) Comando1; Comando2; If($x == $y) { Comando1; Comando2; }
  • Avalia o valor de uma expressão para escolher qual bloco de instruções deverá ser executado
  • 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
  • Condição avaliada no final do bloco. Bloco é executado pelo menos uma vez e termina quando a expressão for avaliada falsa.
  • 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)
  • 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.
  • 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
  • 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
  • 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
  • Quando um formulário é submetido para um script PHP, qualquer variável do formulário será automaticamente disponível para o script
  • htmlspecialchars(<string>); 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(<string>); 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.
  • Várias variáveis pré-definidas no PHP são "superglobais", 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).
  • $_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'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.
  • A função session_start() deve vir antes de qualquer saída HTML.
  • http://docs.php.net/manual/pt_BR/book.mysql.php
  • Veja mais funções em: http://www.php.net/manual/pt_BR/ref.datetime.php
  • 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

    ×