Prog web 02-php-primeiros-passos

  • 161 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
161
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Programação para WEBRegis Pires Magalhãesregispiresmag@gmail.comPHP: PrimeirosPassos
  • 2. “Olá, Mundo” em PHP<html><head><title>Exemplo</title></head><body><?phpecho "Olá, Mundo!";?></body></html>
  • 3. Informações sobre o PHP<?phpphpinfo();?>
  • 4. Delimitadores de CódigoO código deve estar contido entre osdelimitadores:<?php// ...?>
  • 5. ComentáriosDe linha:De bloco:<?php// echo "a";# echo "a";?><?php/* echo "a";echo "b"; */?>
  • 6. Comandos de Saídaecho – Exibe uma ou mais Stringsvoid echo ( string $arg1 [, string $...] )Sem parênteses: pode ter vários parâmetrosCom parênteses: somente um parâmetro<?phpecho a, b, c, <br/>;echo(a<br/>);?>
  • 7. Comandos de Saídaprint – Mostra uma stringint print ( string $arg )Só permite um único parâmetroCom ou sem parêntesesRetorna sempre 1<?phpprint a<br/>;print(a<br/>);?>
  • 8. Comandos de saídaConcatenação de strings<?phpecho a, b, c, <br/>;echo a . b . c . <br/>;echo(a . b . c . <br/>);print a . b . c . <br/>;print(a . b . c . <br/>);?>
  • 9. VariáveisSempre precedidas de $Case sensitive: $nome != $Nome<?php$nome = "João";$sobrenome = "da Silva";echo Sobrenome: $sobrenome - Nome: $nome<br/>;echo Sobrenome: . $sobrenome . - Nome: . $nome . <br/>;echo "Sobrenome: $sobrenome - Nome: $nome<br/>";echo "Nome Completo: $nome $sobrenome<br/>";?>
  • 10. Variáveis<?php$a = 10;$A = 20;echo "O valor de $a é $a e o de $A é $A";?>
  • 11. Variáveis<?php$a = 5;$b = $a;$b = 10;echo $a; // ???echo $b; // ????>
  • 12. Variáveis<?php$a = 5;$b = &$a;$b = 10;echo $a; // ???echo $b; // ????>
  • 13. Variáveis<html><head><title>CEFET-PI PHB</title></head><body><?php$data_de_hoje = date ("d/m/Y H:i:s",time());?><p>Data e hora no servidor:<?php echo $data_de_hoje; ?></p></body></html>
  • 14. Variáveis<html><head><title>CEFET-PI PHB</title></head><body><?php$base = 10;$altura = 20;$area = $base * $altura;echo "Base: $base - Altura: $altura - Área: $area";?></body></html>
  • 15. Variáveis<?php$a = PHP;echo $a;unset($a);echo $a;?>unset – destrói a variável especificada.
  • 16. Valor e Referência<?php$p1 = João;$p2 = $p1;$p1 = Maria;echo "$p1<br/>";echo "$p2<br/>";?><?php$p1 = João;$p2 = &$p1;$p1 = Maria;echo "$p1<br/>";echo "$p2<br/>";?>
  • 17. Variáveis Geradas Dinamicamente$$ - permite utilizar o valor de uma variável paraservir como identificador para outra que écriada.<?php$nome = "João";$futuro_identificador = "autor";$$futuro_identificador = $nome;echo "O nome do autor é ";echo $autor;?>
  • 18. Saída de dadosprint_r – exibe informações sobre uma variávelvar_dump - Mostra informações mais detalhadas sobrea variável, inclusive sobre tipos.<?php$a = array (a => abacaxi, b => banana,c => array (x, y, z));print_r ($a);?><?php$a = array (1, 2, array ("a", "b", "c"));var_dump ($a);$b = 3.1;$c = TRUE;var_dump($b,$c);?>
  • 19. Tipo Booleano<?php$exibir_nome = TRUE;if ($exibir_nome) {echo José da Silva<br/>;}$exibir_nome = false;if ($exibir_nome) {echo Maria da Silva<br/>;}?>
  • 20. Tipo Booleano<?php$umidade = 91;$vai_chover = ($umidade > 90);if ($vai_chover) {echo Está chovendo;}?>
  • 21. Tipo BooleanoValores considerados falsos:Inteiro 0Ponto flutuante 0.0Uma string vazia "" ou "0"Um array vazioUm objeto sem elementosTipo NULL
  • 22. Tipos Numéricos<?php// número decimal$a = 1234;// um número negativo$a = -123;// número octal (83 em decimal)$a = 0123;// número hexadecimal (26 em decimal)$a = 0x1A;// ponto flutuante$a = 1.234;// notação científica$a = 4e23;?>
  • 23. Tipos Numéricos<?php$a = 0x1A; // 26 em decimal$b = -16;$c = $a + $b;echo "$a + $b = $c"?>
  • 24. Tipos Numéricos - Operações<?php$x = 10;echo($x + 5);echo "<br/>";echo($x - 5);echo "<br/>";echo($x * 5);echo "<br/>";echo($x / 5);echo "<br/>";echo($x % 8);?>
  • 25. Operadores relacionais<, >, <=, >=, ==, !=, ====== (idêntico a)Verdadeiro se os operandos forem iguais e domesmo tipo.
  • 26. Tipos numéricosFunções:floorceilroundabsminmaxrand / mt_rand (melhorado)
  • 27. mt_rand<?phpecho mt_rand() . " ";echo mt_rand() . " ";echo mt_rand(5, 15);?>
  • 28. Tipo String<?php$a = teste;$b = 1;echo Isto é um $a $b<br/>;echo "Isto é um $a $b<br/>";?>
  • 29. Tipo String<?php$a = Programação para Web;echo $a,<br/>;echo Tamanho: .strlen($a),<br/>;echo Caixa Alta: .strtoupper($a),<br/>;echo Número: .str_pad(57,6,0,STR_PAD_LEFT);?>str_padpreenche uma string com outra string.
  • 30. Tipo StringHeredocOutra maneira para delimitar strings é utilizando asintaxe heredoc ("<<<").<?php$nome = "Maria";$str = <<<FIMOi, $nome. Este é um exemplo de uma<br/>string distribuída em várias linhas<br/>utilizando a sintaxe heredoc.FIM;echo $str;?>
  • 31. Tipo StringFormatação de Númerosnumber_formatstring number_format (float $numero [, int $decimais])string number_format(float $numero, int $decimais, string$ponto_decimal, string $separador_milhares)<?php$numero = 1234.56;// Notação Brasileira$numero_formatado = number_format($numero, 2, ,, .);// 1.234,56echo "Número Formatado: $numero_formatado<br/>";?>
  • 32. Tipo StringAlgumas funções:strlen – tamanhostrposstrcmpstrcasecmp – case insensitivestrstr / stristr (case insensitive)strchrsubstrchop ou rtrimltrimtrimstr_replacesubstr_replacestrtolowerstrtoupperucfirstucwordsstrrevstr_padpreg_splitnumber_format
  • 33. Tipo Array<?php$carros = array(Palio, Corsa, Gol);echo $carros[1];?><?php$carros[] = Palio;$carros[] = Corsa;$carros[] = Gol;echo $carros[1];?>ou
  • 34. Tipo Array (Associativo)<?php$estados = array(PI => Teresina,CE => Fortaleza,MA => São Luís);echo "$estados[PI]<br/>";echo "{$estados[CE]}<br/>";echo "$estados[MA]<br/>";?>
  • 35. Tipo Array<?php$vetor = array (10,50,100,150,200);echo "$vetor[2] <br/>";$vet = array (1, 2, 3, nome=>Joaquim);echo "$vet[0] <br/>";echo $vet[nome];?>
  • 36. Tipo Array<?php$est = array(Ceará => Fortaleza,Piauí => Teresina);echo "A capital do Piauí é $est[Piauí].<br/>";echo "A capital do Piauí é {$est[Piauí]}.<br/>";echo "A capital do Piauí é {$est[Piauí]}.<br/>";echo "A capital do Piauí é " . $est[Piauí] . ".<br/>";?>Uso de chaves em Strings
  • 37. Dividindo uma String em Array<?php$str = Esta é a minha casa2. ;$str .= Oi, ela é muito bem dividida!!! ;$array = preg_split(/[W]+/, $str, -1,PREG_SPLIT_NO_EMPTY);$tamanho = count($array);echo "Número de palavras: $tamanho<br/>";echo "Palavras: <br/>";foreach($array as $palavra) {echo "$palavra<br/>";}?>
  • 38. Tipo ArrayFunções:arrayis_arraycount / sizeofin_arrayIsSet($array[$key])unset -> remover elementoscurrent ou posnextprevresetendeachmaxarray_fliparray_reverseshufflearray_padarray_slice – extrai parte do arrayarray_splice – remove e subst. parte doarray.asort – ordena e mantém assoc.arsortksortkrsortsort – ordena um arrayrsortuasortaksortusort
  • 39. Laço - foreach<?php$vetor = array(banana,laranja,abacaxi,caju);foreach ($vetor as $item) {echo "$item <br/>";}?>
  • 40. Escopo de variáveis<?php$num = 5000;function testa_escopo1() {$num += 5;echo "$num <br/>";}echo "$num <br/>";testa_escopo1();?>
  • 41. Escopo de variáveis<?php$num = 5000;function testa_escopo1() {global $num;$num += 5;echo "$num <br/>";}echo "$num <br/>";testa_escopo1();?>
  • 42. Escopo de variáveis<?phpfunction soma($a) {global $b;$b = $a + 5;}soma(10);echo "o valor de b é $b";?>
  • 43. ConstantesValores predefinidos que não mudam aolongo da execução.A função define serve para definir umaconstante.bool define(string $name, mixed $value [,bool $case_insensitive])O nome da constante é dado pelo parâmetro $name; o valoré dado por $value.Se o terceiro parâmetro ($case_insensitive) for TRUE, aconstante será definida como case-insensitive. O padrão écase-sensitive.
  • 44. Constantes<?phpdefine(CONSTANTE, Alô Mundo.);echo CONSTANTE . <br/>;echo Constante . <br/>;define(SAUDACAO, Alô Você.,TRUE);echo SAUDACAO . <br/>;echo Saudacao . <br/>;?>
  • 45. ConstantesCONSTANTE DESCRIÇÃOTRUE Valor verdadeiro (utilizado para comparação).FALSE Valor falso.__FILE__ Contém o nome do script que está sendo executado.__LINE__ Contém o número da linha do script que está sendo executado.PHP_VERSION Contém a versão corrente do PHP.PHP_OS Nome do sistema operacional no qual o PHP está rodando.E_ERROR Exibe um erro ocorrido em um script. A execução é interrompida.E_WARNING Exibe uma mensagem de aviso do PHP. A execução não pára.E_PARSE Exibe um erro de sintaxe. A execução é interrompida.E_NOTICE Mostra que ocorreu algo, não necessariamente um erro.A execução não pára.Algumas constantes predefinidas:
  • 46. Constantes<?phpecho Arquivo: . __FILE__ . <br/>;echo Linha: . __LINE__ . <br/>;echo Versão do PHP: . PHP_VERSION . <br/>;echo Sistema Operacional: . PHP_OS . <br/>;?>
  • 47. Desvio<?php$a = True;if ($a) {echo Verdadeiro;} else {echo Falso;}?>
  • 48. Desvio<?php$idade = 15;if ($idade < 18) {echo Não pode entrar;} else {echo Pode entrar;}?>
  • 49. Desvio<?php$d = getdate();switch ($d[wday]) {case 0:$dia = Domingo; break;case 1:$dia = Segunda; break;case 2:$dia = Terça; break;case 3:$dia = Quarta; break;case 4:$dia = Quinta; break;case 5:$dia = Sexta; break;case 6:$dia = Sábado; break;default:$dia = Erro;}echo "Hoje é $dia";?>
  • 50. Laço contado<?phpecho Números ímpares de 1 a 100: <br/>;for ($i = 1; $i < 100; $i += 2) {echo "$i ";}?>
  • 51. Laço condicional<?phpecho Números entre 1 e 10: <br/>;$i = 1;while($i <= 10) {echo "$i ";$i++;}?>
  • 52. Laço condicional<?phpecho Números entre 1 e 10: <br/>;$i = 1;do {echo "$i ";$i++;} while($i <= 10)?>
  • 53. Sintaxe alternativa Existe uma sintaxe alternativa para algumasestruturas de controle: if, while, for, foreach e switch. A forma básica é mudar o sinal de abertura de blocopara dois-pontos (:) e o sinal de fechamento paraendif;, endwhile;, endfor;, endforeach; ouendswitch;, respectivamente.
  • 54. Sintaxe alternativa<?phpif ($a == 5):echo "a igual a 5";echo "...";elseif ($a == 6):echo "a igual a 6";echo "!!!";else:echo "a não é nem 5 nem 6";endif;?>
  • 55. Sintaxe alternativa...<ul><?php foreach($valores as $elemento): ?><li><?= $elemento ?></li><?php endforeach; ?></ul>...
  • 56. Função<?phpfunction media($a, $b) {return ($a + $b) / 2;}echo A média entre 2 e 7 é: . media(2,7);?>
  • 57. Função<?phpfunction area_circulo($raio) {return M_PI * pow($raio, 2);}$meuRaio = 5;$area = area_circulo($meuRaio);echo "Raio: $meuRaio<br/>";echo "Área: $area<br/>";?>
  • 58. Função<?phpfunction escreve_texto() {echo Já sei criar funções em PHP;}escreve_texto();?>
  • 59. Função O caracter @ poder ser usado imediatamente antes donome da função para suprimir possíveis mensagens deerro.<?phpfuncao_inexistente();?><?php@funcao_inexistente();?>
  • 60. include ou require Ambos incluem e avaliam o arquivo informado. A ausência do arquivo especificado no require,interrompe o processamento e produz um FatalError.
  • 61. include_once ou require_once Similar a include e require, mas se o arquivojá tiver sido incluído, a inclusão não será feitanovamente.
  • 62. Dados entre páginasHTTP não possui estadoCada requisição é única e não sabe nada sobre asdemais.Não tem memória.Cada requisição resulta na execução de um processoque é finalizado logo após sua execução.Para uma página mandar informações para uma outrahá as seguintes opções:Formulários HTMLCookiesSessões
  • 63. Dados entre páginasA técnica mais simples de passar dados entre páginasusa os métodos GET e POST do protocolo HTTP.GET – dados são transmitidos na própria URL.Vantagem: pode ser adicionado aos favoritos.Exemplo: pesquisa no Google...http://www.google.com.br/search?hl=pt-BR&q=cefet&btnG=Pesquisar&meta=Desvantagens:Não seguro para informações confidenciais como senha;Requisições GET ficam gravadas no log do servidor e no histórico docliente;O tamanho da URL é limitado, ficando inviável enviar muita informaçãovia GET.
  • 64. Dados entre páginasGET é muito usado para navegação (links).POSTPOST é a forma ideal de transmitir dados deformulários;Vantagens:Mais seguro que GET, pois a informação não fica tão visível;Permite a passagem de grande quantidade de dados;Desvantagens:Não pode ser adicionado aos favoritos;Os resultados podem ser perdidos se o usuário navegar pelosbotões voltar e avançar no navegador;
  • 65. Dados entre páginasResumindo:Usar POST em formulários;Usar GET para navegação e buscas.
  • 66. Dados entre páginas - GET<!-- formulario.php --><html><head><title>PHP Teste</title></head><body><form action="processa.php" method="GET">Seu nome <input type="text" name="nome" />Sua idade: <input type="text" name="idade" /><input type="submit"></form></body></html>
  • 67. Dados entre páginas - GET<!-- processa.php --><html><head><title>PHP Teste</title></head><body>Oi <?php echo $_GET["nome"]; ?>.Você tem <?php echo $_GET["idade"]; ?> anos.</body></html>
  • 68. Dados entre páginas - POST<!-- formulario.php --><html><head><title>PHP Teste</title></head><body><form action="processa.php" method="POST">Seu nome <input type="text" name="nome" />Sua idade: <input type="text" name="idade" /><input type="submit"></form></body></html>
  • 69. Dados entre páginas - POST<!-- processa.php --><html><head><title>PHP Teste</title></head><body>Oi <?php echo $_POST["nome"]; ?>.Você tem <?php echo $_POST["idade"]; ?> anos.</body></html>
  • 70. Usando uma única página<html><head><title>CEFET-PI PHB</title></head><body><form action="nome_idade.php" method="POST"><p>Seu nome <input type="text" name="nome"value="<?php echo $_POST[nome] ?>"/></p><p>Sua idade: <input type="text" name="idade"value="<?php echo $_POST[idade] ?>"/></p><input type="submit"></form><?phpif (isset($_POST[nome])) {echo "Oi, {$_POST[nome]}.";echo "Você tem {$_POST[idade]} anos.";}?></body></html>
  • 71. Dados entre páginas_REQUESTContém um array associativo com os conteúdos de$_GET, $_POST e $_COOKIE.<form action="foo.php" method="post">Nome: <input type="text" name="username" /><br />Email: <input type="text" name="email" /><br /><input type="submit" name="submit" value="Me aperte!" /></form><?phpecho $_POST[username];echo $_REQUEST[username];?>
  • 72. Variáveis HTTP$_SERVER$_ENV$_COOKIE$_GET$_POST$_FILES$_REQUEST$_SESSION$GLOBALS$HTTP_RAW_POST_DATA$http_response_header