introdução
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
introdução
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves
gerente de projetos > digitale agência digital
hDp://www.digitale.com.br
hDp://leveme.la/rogerio
rogério gonçalves – [email protected]
este curso
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
introdução
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
o que é php? pra que serve? como, onde e quando eu uso? o que eu preciso pra usar? porque não java? .net? asp? o que esperar desse curso?
rogério gonçalves – [email protected]
introdução
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
php
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
introdução
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
histórico • 1995 > Rasmus Lerdorf > PHP ("Personal Home Page”) • 1997 > PHP 2 • 1998 > Zeev Suraski e Andi Gutmans > PHP 3 ("PHP: Hypertext Preprocessor”) • 1999 > Zend Engine • 2000 > PHP 4 • 2004 > PHP 5 • 2008 > PHP 5 = única versão estável em desenvolvimento • Hoje > The PHP Group
rogério gonçalves – [email protected]
h@p://en.wikipedia.org/wiki/Rasmus_Lerdorf
introdução
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
o modelo web server-‐side
client-‐side
recursos
rogério gonçalves – [email protected]
introdução
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
conteúdo está3co server-‐side
client-‐side
página html
página html
Download do arquivo igual (cópia)
<doctype…>!<html>!<head>…<head>!<body>!<h1>olá mundo!</h1>!</body>!</html>!
<doctype…>!<html>!<head>…<head>!<body>!<h1>olá mundo!</h1>!</body>!</html>!
rogério gonçalves – [email protected]
introdução
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
conteúdo dinâmico server-‐side
client-‐side
página php
página html
Download do resultado interpretado
<doctype…>!<html>!<head>…<head>!<body>!<h1>olá mundo!</h1>!<p><?= date(H:i); ?></p>!</body>!</html>!
<doctype…>!<html>!<head>…<head>!<body>!<h1>olá mundo!</h1>!<p>22:10</p>!</body>!</html>!
interpretador
<doctype…>!<html>!<head>…<head>!<body>!<h1>olá mundo!</h1>!<p>22:10</p>!</body>!</html>!página html
rogério gonçalves – [email protected]
funcionamento
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
funcionamento
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
php -‐ algumas informações • versão atual 5.4 (estável) • linguagem interpretada • executado como um módulo dentro do servidor web • sintaxe simples • grande comunidade de usuários através do mundo • grande u3lização e suporte nos servidores web • grande velocidade e estabilidade • orientação a objetos • bancos de dados
rogério gonçalves – [email protected]
funcionamento
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
html (conteúdo está3co) • linguagem de marcação (tags – abre/fecha) • NÃO é uma linguagem de programação
<!DOCTYPE...>!<html>!
!<head>...</head>!!<body>!! !<h1>Título</h1>!! !<p>Parágrafo <strong>negrito</strong> ...</p>!! !<img src=“logo.gif” />!!</body>!
</html>!
rogério gonçalves – [email protected]
funcionamento
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
php (conteúdo dinâmico) • linguagem de programação • trabalha em conjunto com o html para permi3r que o conteúdo final seja diferente de
acordo com as variáveis e a programação definida
<!DOCTYPE...>!<html>!
!<head>...</head>!!<body>!! !<? if( $usuarioLogado ){ ?>!! ! !<h1>Título</h1>!! ! !<p>Parágrafo <strong>negrito</strong> ...</p>!! ! !<img src=“logo.gif” />!! !<? } else{ ?>!! ! !<p>Você precisa estar logado para acessar essa página</p>!! !<? } ?>!!</body>!
</html>!
rogério gonçalves – [email protected]
funcionamento
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
php -‐ u3lização • os comandos devem ser incluídos entre os delimitadores: <? e ?> ou <?php e ?> • qualquer comando não-‐php dentro dos delimitadores poderá gerar um erro de sintaxe
• comentários de uma linha são indicados com // e de múl3plas linhas com /* e */
!<?!!if( $usuarioLogado ){!! !echo "Título";!! !<p>Parágrafo...</p>!!}!!?>!
!<?!!echo ”texto”; // comentário de uma linha!
!!/*echo "Texto";!!echo "Texto 2"; comentário de várias linhas */!!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • variáveis: são indicadas com um símbolo de cifrão ($) no inicio
• constantes: armazenam um valor e este não pode ser alterado / não u3liza o símbolo de
cifrão ($) e devem ser definidos através da palavra-‐chave define
!<?!!$nome = "Fulano";!!$valor = 10;!!$teste = $nome; !!?>!
rogério gonçalves – [email protected]
!<?!!define( "LARGURA_MAXIMA", 1000 );!!if( $largura > LARGURA_MAXIMA ){!! !...!!} !!?>!
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • principais 3pos de variáveis em php
!<?!!
!// string (cadeia de caracteres): deve estar englobado !!// entre aspas duplas (") ou simples (')!!$nome1 = "Fulano";!!$nome2 = 'Ciclano';!
!!// int, float, double (numérico): não precisa estar !!// englobado por aspas!!$num1 = 10; !!$num2 = -10;!!$num3 = 7.8;!!$pi = 3.14159265;!!!!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • principais 3pos de variáveis em php
!<?!!
!// boolean: verdadeiro/falso!!$processar = false;!!$usuarioLogado = true;!
!!// null: nenhum valor definido (variável vazia)!!$num1 = NULL; !!$nome = NULL;!!$processar = NULL;!
!!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • 3po mixed e typecas3ng: o php é uma linguagem com 3pagem dinâmica, ou seja,
converte o 3po de uma variável automa3camente de acordo com o seu valor
• quando uma variável assume (ou pode assumir) mais de um 3po dizemos que ela é do 3po mixed, ou seja, sem um 3po definido
!<?!!
!$numero = 10; // tipo integer!!$numero = "10"; // agora é do tipo string!!$numero = false; // agora número é do tipo boolean!
!!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • em alguns casos, o 3po da variável pode ser alterado de acordo com a operação
sendo executada com ela
!<?!!
!$numero = 10; // tipo integer!!$numero = "10"; // agora é do tipo string!!!!echo $numero * 5; // volta a ser integer devido ao operador !! ! ! ! ! // de multiplicação (*)!! ! ! ! ! // saida: 50!
!!echo "número:" . $numero; // novamente volta a ser string devido!! ! ! ! ! ! !// ao operador de concatenação (.)!! ! ! ! ! ! !// saida: número:10!
!!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • operadores:
• atribuição ( = ) • negação ( ! ) • comparação -‐ igualdade ( == ) • comparação -‐ maior ou igual que ( >= ) • comparação -‐ menor ou igual que ( <= ) • comparação -‐ maior que ( > ) • comparação -‐ menor que ( < ) • comparação -‐ diferente de ( != ) • lógico -‐ e ( && ) • lógico -‐ ou ( || )
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • condicional if:
!<?!!// forma curta – uma linha!!if( <condição> )!! !...!
!!// extendida – uma ou mais linhas!!if( <condição> ){!! !...!!}!
!!// senão!!if( <condição> ){!! !...!!} else{!! !...!!}!!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • condicional switch: múl3plos testes
!<?!!switch( <variável> ){!!!! !case <valor 1>:!! ! !...!! ! !break;!! !case <valor 2>:!! ! !...!! ! !break;!! !(...)!! !default:!! ! !...!! ! !break;!!}!!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • loop while / do while: loop inteterminado
!<?!!// while: teste no inicio do bloco!!while( <condição> ){!
!! !...!
!!}!
!!// do while: teste no final do bloco!!do{!!
!! !...!
!!} while( <condição> );!!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
variáveis, loops, condicionais, etc, etc… • loop for: loop determinado
!<?!!// forma curta – uma linha!!for( <inicio>; <condição>; <incremento> )!! !...!
!!// extendida – uma ou mais linhas!!for( <inicio>; <condição>; <incremento> ){!
!! !...!
!!}!!?>!
rogério gonçalves – [email protected]
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
1. olá mundo crie uma página php que mostre a frase “olá mundo” em negrito (tag html <strong>); 2. olá mundo 2 crie uma página php que mostre as frase “bom dia mundo” se o horário atual for menor que 12:00 e “boa tarde mundo” se for maior (ref. date("H") retorna a hora no formato 00 a 23 ); 3. ola mundo 3 modifique o exercício anterior para exibir a frase "boa noite mundo" se o horário for maior que 18:00; 4. contando… crie uma página html (está3ca) que mostre 25 links (tag html <a>) cada um contendo o número correspondente de 1 a 25; 5. contando… 2 modifique o exercício anterior, transformando a página em php e u3lizando o comando for;
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
vetores/arrays • vetores são conjuntos de variáveis alocados em um mesmo "espaço" e
organizados/ordenados por uma chave (índice)
• vetores, em php, são definidos como variáveis (u3lizando o cifrão $) e seus
tamanhos são dinâmicos, ou seja, não precisam ser definidos
!<?!!
!$frutas = array( "Laranja", "Abacaxi", "Limão" );!!
!$estados = array( "SP", "RJ", "MG", "ES" );!!
!$numeros = array( 1, 10, 1662, 17288901, 6 );!!
!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
vetores/arrays • para acessar um valor dentro de array u3liza-‐se os caracteres colchetes ([ ]) junto
com a chave do item a ser acessado
!<?!!
!$frutas = array( "Laranja", "Abacaxi", "Limão" );!!
!echo $frutas; // saida: Array!!
!echo $frutas[0]; // saida: Laranja!!
!echo $frutas[1]; // saida: Abacaxi!!
!echo $frutas[2]; // saida: Limão!!
!echo $frutas[3]; // saida: ?!!
!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
vetores/arrays • os arrays armazenam (e mantém ordem) dos valores armazenados através do
conceito do par chave/valor • se nenhuma chave é definida, o php adota o padrão numérico sequencial (0..n) • chaves podem ser explicitamente definidas pelo operador de atribução (=>)
!<?!!
!// imagine o vetor assim!!$frutas = array( "Laranja", "Abacaxi", "Limão" );!
!!// para o php ele é assim!!$frutas = array( 0=>"Laranja", 1=>"Abacaxi", "2"=>"Limão" )!
!!?>!
rogério gonçalves – [email protected]
conceitos básicos
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
vetores/arrays > foreach • estrutura de loop contado (semelhante ao for) porém percorre um array do
inicio ao fim
!<?!!
!$frutas = array( "Laranja", "Abacaxi", "Limão" );!!
!foreach( $frutas as $fruta ){!!
! !echo $fruta;!!!!}!
!!// saida: LaranjaAbacaxiLimão !
!!?>!
rogério gonçalves – [email protected]
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
6. array de estados monte um array contendo os estados (não as siglas) do brasil, percorra esse vetor e exiba cada estado dentro de uma tag <span>; [a saber: Acre, Alagoas, Amapá, Amazonas, Bahia, Ceará, Distrito Federal, Espírito Santo, Goiás, Maranhão, Mato Grosso, Mato Grosso do Sul, Minas Gerais, Pará, Paraíba, Paraná, Pernambuco, Piauí, Rio de Janeiro, Rio Grande do Norte, Rio Grande do Sul, Rondônia, Roraima, Santa Catarina, São Paulo, Sergipe, Tocan3ns] 7. array de estados (2) usando o mesmo array do exercício 6, inclua a sigla de cada estado como sua chave, percorra esse vetor e exiba cada estado dentro de uma tag <span>; se o estado for são paulo use a tag <strong> ao invés de <span>; [a saber: AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO] 8. array de estados (3) adapte o exercício 7 para exibir o vetor dentro de um combo-‐box <select> onde a sigla deve ser o valor do <op3on> e o nome do estado deve ser texto exibido aos usuários; 9. array de estados (4) adapte o exercício 8 para trazer o estado de são paulo como selecionado (selected);
rogério gonçalves – [email protected]
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
10. array de arrays monte um array contendo 10 elementos (também array) como no formato abaixo, o preencha com dados fic{cios:
array[<num_matricula>] = array[ "nome"=><nome>, "idade"=><idade>, "email"=><email> ]; 11. array de arrays (2) percorra o array do exercício 10 e mostre os dados no seguinte formato html:
<h1>Matrícula: <num_matricula></h1> <p> <strong>Nome: </strong><nome><br /> <strong>Idade: </strong><idade><br /> <strong>E-‐mail: </strong><email><br /> </p> <hr />
rogério gonçalves – [email protected]
funções e escopo
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
funções • funções são u3lizadas principalmente para 2 propósitos: (1) agrupar código
semelhante e (2) reaproveitar blocos de código u3lizado com frequência • em php são indicados pela palavra-‐chave funcSon e podemo ou não receber
parâmetros e podem ou não retornar uma variável
!<?!!function soma( $n1, $n2 ){!
!! !return $n1 + $n2;!
!!}!
!!soma( 10, 11 ); // saida: ?!!?>!
rogério gonçalves – [email protected]
funções e escopo
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
funções > retorno !<?!!function soma( $n1, $n2 ){!
!! !return $n1 + $n2;!
!!}!
!!echo soma( 10, 11 ); // saida: 21!!?>!
rogério gonçalves – [email protected]
!<?!!function assinaSite(){!
!! !echo "<p>Site feito por mim © 2012</p>";!
!!}!
!!assinaSite(); // saida: ?!!?>!
funções e escopo
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
escopo • escopo é o nome do termo que indica o grau de visibilidade de uma variável
dentro de uma função • o escopo, em php, pode ser global e local, por exemplo
!<?!!
!$nome = "Fulano";!!!!function escreveNome(){!
!! !echo $nome;!
!!}!
!!escreveNome(); // saida: ?!!!!?>!
rogério gonçalves – [email protected]
funções e escopo
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
!<?!!
!$nome = "Fulano"; // escopo global!!!!function escreveNome( $nome ){ // escopo local!
!! !echo $nome;!
!!}!
!!escreveNome( $nome ); // saida: ?!!!!?>!
rogério gonçalves – [email protected]
escopo • global x local
funções e escopo
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
!<?!!
!$nome = "Fulano"; // escopo global!!!!function escreveNome(){ !
!! !global $nome; // diz que nome é global e não mais local!
!! !echo $nome;!
!!}!
!!escreveNome(); // saida: Fulano!!!!?>!
rogério gonçalves – [email protected]
escopo • quando queremos explicitamente acessar o escopo global em uma função
usamos o modificador global deste modo:
includes
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
!<?!!
!include "minhas-funcoes.php";!!
!assinaSite();!! !!!?>!
rogério gonçalves – [email protected]
include • includes são muito úteis para isolar trechos repe3dos de código (php e não php)
em arquivos separados e acessá-‐los de forma centralizada • em php um include pode ser acessado com a palavra-‐chave include
includes
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
!// arquivo rodape.html!!
!<p align="center">!!
! !Site desenvolvido por mim © 2012<br />!!
! !<a href="www.meusite.com.br">meusite.com.br</a>!!
!</p>!
rogério gonçalves – [email protected]
include • vejamos um include sem código php
!// arquivo site.php!!!!<div class="rodape">!
!! !<? include "rodape.html"; ?>!
!!</div>!
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
12. função base crie uma função básica que receba dois parâmetros e retorne o menor deles; se forem iguais ela deve retornar 0. 13. função cabecalho() crie uma função cabecalho() que escreva (ou retorne) o cabeçalho da sua página pessoal no formato html abaixo e chame essa função dentro do corpo (<body) da página:
<p class="topo" align="center"> <strong><seu_nome></strong><br /> <u>bem vindo a minha página pessoal</u><br /> <span>data: <data_atual> / hora: <hora_atual></span> </p>
14. mais páginas crie outras duas páginas html e chame a função cabecalho() dentro do <body> de cada uma delas; faça os ajustes para que o sistema fique o3mizado;
rogério gonçalves – [email protected]
strings e datas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
strings • strings são cadeias de caracteres • em php, strings podem conter até 2GB • em conjunto com o 3po integer (numérico) são os 3pos mais u3lizados em
qualquer lógica • o php fornece uma gama muito grande de funções para manipulação de strings o
que as torna um 3po ainda mais poderoso e completo • vejamos as principais funções • mas antes, um conceito básico para strings....
strings e datas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
!<?!!
!$nome = "Fulano";!!!!echo "Olá " . $nome . ", bem vindo ao meu site";!
!!// saida: Olá Fulano, bem vindo ao meu site!
!!echo "Olá $nome, bem vindo ao meu site"; // saida: ?!
!!// nas aspas duplas (") as variáveis são lidas !! !!!echo 'Olá $nome, bem vindo ao meu site'; // saida: ?!
!!// nas aspas simples (') as variáveis NÃO são lidas!
!?>!
rogério gonçalves – [email protected]
strings • concatenação -‐ união de duas strings (operador .)
strings e datas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
!<?!!
!$nome = "Fulano";!!$cargo = "Programador";!!$linguagem = "PHP";!!!!echo "Olá " . $cargo . $nome . ", este site é sobre " . $linguagem;!!!// saida: Olá ProgramadorFulano, este site é sobre PHP!
!!?>!
rogério gonçalves – [email protected]
strings
strings e datas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
strings > algumas funções úteis • echo( $str ) ou echo $str ou = $str [forma curta] • strtoupper( $str ) e strtolower( $str ) • substr( $str, $inicio, [$tamanho] ) • strlen( $str ) • str_replace( $buscar, $trocar, $str ) • trim( $str ) • strpos( $str ) • implode( $caracter, $arr ) • explode( $delimitador, $string )
strings e datas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
datas • para manipulação de datas o php fornece a função date() que é muito completa • basicamente essa função date() formata um 3mestamp de acordo com os
parâmetros que são passados • se nenhum 3mestamp é passado, o atual é u3lizado
!<?!!
!$hoje = date(); !// hoje recebe o timestamp atual, ou seja,!! ! ! ! !// este exato momento mas a função date()!! ! ! ! !// não funciona sem um parâmetro!
!!?>!
strings e datas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
datas > formatação • para uma pessoa, um 3mestamp pode não significar nada ou então serão
necessários alguns cálculos para que signifique alguma coisa • nesse caso, precisamos formata-‐lo em um formato mais amigável • o php fornece uma lista completa de opções de formatação de 3mestamps
• hDp://br.php.net/manual/pt_BR/func3on.date.php
strings e datas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
datas > formatação
!<?!!
!$esteAno = date( "Y" ); !// $esteAno recebe o ano atual!!$esteDia = date( "d" ); !// $esteDia recebe o dia atual!!$esteMes = date( "m" ); !// $esteMes recebe o mês atual!
!!$hoje = date( "m/d/Y" ); // $hoje recebe a data no formato!! ! ! ! ! ! !// dd/mm/aaaa!
!!$agora = date( "H:i" ); !// $agora recebe a hora atual no !! ! ! ! ! ! !// formato hh:mm!
!!$var = date( "l" ); ! !// ?!
!!$var = date( "r" ); ! !// ?!
!!// ...!
!!?>!
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
15. olá fulano dada uma variável $nome contendo o nome completo de uma pessoa, mostre apenas o primeiro nome daquela pessoa; 16. cadastro de emails dado o vetor de e-‐mails abaixo, percorra-‐os e mostre cada e-‐mail sem espaços e com as letras todas em minúsculas:
$emails = array( "[email protected]", " [email protected] ", "[email protected]", "orç[email protected]", "marke3ng@ yahoo.com.br " );
17. cadastro de emails (2) adapte o exercício 16 para remover os espaços do interior dos emails e não mostrar e-‐mails contendo "ç";
rogério gonçalves – [email protected]
exercícios
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
18. em que dia estamos? mostre o dia da semana em português; 19. data completa mostre a data atual do sistema no seguinte formato html:
<p align="center">Sábado, 14 de abril de 2012 ás 15:45</p>
20. converteData crie uma função que receba uma data no formato "dd/mm/YYYY" e retorne a mesma data no formato "YYYY-‐mm-‐dd"; crie outra função (ou a mesma) que faça o processo inverso;
rogério gonçalves – [email protected]
dicas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
dicas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
comentários • comentários são mecanismos excelentes para iden3ficar e documentar trechos
de código para outros programadores do projeto ou para você mesmo • evite comentários a cada linha e prefira comentar trechos que fazem parte de
uma mesma lógica ou sub-‐lógica • evite comentários que não dizem nada ou comentários em linhas ou trechos
auto-‐explica3vos
• comente suas funções
!<?!!
!// se a página for vazia defino ela como 1!!if( $pagina == "" ) $pagina = 1;!
!!?>!
dicas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
comentários • busque algo como:
!<?!!// inicio as variáveis!!$usuarioLogado = false;!!$nome = "";!!$pagina = 1;!
!!// trato os parâmetros recebidos!!// ...!!// ...!!// ...!
!!// verifico no banco de dados se o usuário existe!!// ...!!// ...!!// ...!
!!?>!
dicas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
identação • nenhuma linguagem moderna obriga a identação porém quanto mais (e melhor)
ela for usada, mais ní3do e fácil de manter o código sera • como o php está, na maioria das vezes, integrado ao html é muito fácil perder o
controle dos blocos quando não há identação • é importante que o próprio html também seja identado para facilitar
manutenções no código • veja o exemplo a seguir...
dicas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
identação <html><body><head><title>Titulo</title>!</head><body>!<? $dias = array("Segunda","Terça","Quarta","Quinta","Sexta","Sábado",!"Domingo");!echo "<h1>Dias da semana</h1>";!foreach( $dias as $dia ){ ?><p><? echo $dia; ?></p><? } ?></body>!</html>!
dicas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
identação <html>!
!<head>!! !<title>Titulo</title>!!</head>!!<body>!! !<?!! !$dias = array( !! ! !"Segunda", "Terça", "Quarta", "Quinta", ! ! !"Sexta","Sábado","Domingo" !! !);!
!! !echo "<h1>Dias da semana</h1>";!! !foreach( $dias as $dia ){ ?>!
!! ! !<p><? echo $dia; ?></p>!! ! !!! !<? } ?>!!</body>!
</html>!
dicas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
debug • debug é o nome dado a técnica de localizar erros • no php, por ser uma linguagem server-‐side interpretada, é di�cil monitorar cada
interação executada pelo servidor • muitos servidores omitem erros internos ou alertas de processamento e por isso
as vezes é dificil localizar o que está errado em uma lógica • uma dica interessante, em php, é escrever (no html) o conteúdo de variáveis e
vetores que podem estar causando a falha • também é interessante imprimir informações antes e depois de trechos mais
complexos e dentro de ifs, switchs, func3ons e etc para iden3ficar aonde o interpretador do php chegou e aonde ele não chegou
• os comandos mais úteis para esse 3po de debug são echo para variáveis e print_r para arrays
• (falaremos mais de debug nos próximos módulos)
dicas
curso: php / aula: 01 introdução / funcionamento / práSca / exercícios
rogério gonçalves – [email protected]
documentação on-‐line • a documentação on-‐line do php é um recurso extremamente completo e ú3l • totalmente aberta (não requer nenhum cadastro) • boa parte em português \o/
• hDp://www.php.net/manual/pt_BR/
fim da aula 01
dúvidas? [email protected]
referências: hDp://php.net
hDp://en.wikipedia.org/wiki/PHP
curso: php / aula: 01 introdução / funcionamento / prá3ca / exercícios
rogério gonçalves – [email protected]
Recommended