1
PROGRAMAÇÃO WEB
AULA
1
professor Luciano Roberto Rocha
www.lrocha.com
Conteúdo
programático
Conceitos;Ambientes de Programação em Script; Tópicos na Linguagem de Programação; Abstração, e Diagramação;
Variáveis e tipos de Dados; Estrutura de programação; Tomada de decisão; Estruturas de Controle; Laços de Repetição; Matrizes; Manipulação de Arquivos. Uso de funções internas;
Integração da linguagem com SGBDs.
Competências
e habilidades
U t i l i z a r a s p r i n c i p a i s f e r r a m e n t a s d e
desenvolvimento em linguagem de script voltada
para Web.
Incentivar o interesse pela pesquisa em
informática e o aperfeiçoamento das técnicas de
programação.
Tornar o profissional apto ao desenvolvimento e
implementação de sistemas comerciais nas
principais linguagens de programação Web.
Procedimentos
didáticos
Exposição/Debate/Diálogo sobre conteúdo
proposto no plano de curso.
Realização de exercícios práticos com o auxílio
do laboratório de informática para aplicação e
utilização das diversas técnicas de programação
em linguagem PHP.
Desenvolvimento de dinâmicas em grupos e
estudo de casos pertinentes à disciplina.
Sistemática
de avaliação
Duas avaliações parciais, teóricas do conteúdo
ministrado em sala de aula com exercícios e
questões objetivas e/ou descritivas com peso de
4 pontos.
Duas avaliações bimestrais, teóricas ou práticas
dos conhecimentos trabalhados em sala de aula
por meio do desenvolvimento de exercícios de
implementação e aplicação dos temas
pertinentes a disciplina com peso de 6 pontos.
Referencial
teórico
BIBLIOGRAFIA BÁSICA:
MELONI , Julie C. Fundamentos de PHP. São Paulo: Ciência Moderna, 2000.
ZANDSTRA, Matt Entendendo e Dominando o PHP.São Paulo: Digerati Books, 2006.
BIBLIOGRAFIA COMPLEMENTAR:
NEDERAUER, Juliano. PHP 5: Guia de Consulta Rápida 3a. Ed. São Paulo:Novatec 2008.
NEDERAUER, Juliano. Integrando PHP 5 Com MySQL: Guia de Consulta
Rápida São Paulo:Novatec 2008.
Recursos
tecnológicos
7
XAMPP
Conceitos
fundamentais
8
LINGUAGEM DE
PROGRAMAÇÃO
Arquitetura
de software
Modelo standalone
Modelo cliente-servidor
Modelo em n camadas (sistemas distribuídos)
Modelo em 3 camadas (apresentação-negócio-dados)
Sistemas baseados na Web
9
Todos os recursos necessários a execução do programa estão localizados em apenas uma máquina
Interface com o usuário
Sistema de arquivos Processos
SGBD
Plataforma de execução
Aplicação dividida em duas camadas
Interface com o usuário
Sistema de arquivos Processos SGBD Cliente (gordo) Servidor
Requisição (request) - Input Resposta (response) - Output
Modelo dividido em três camadas
Interface com o usuário
Sistema de arquivos Processos SGBD Cliente (magro) Servidor WEB Processos
Sistemas legados, SGBDs, etc.
Sistema de arquivos
Requisição (request) - Input Resposta (response) - Output
Fonte:
Market Share by Net ApplicaKons mai-‐ago/2009 65,85% 22,39% 8,46% 1,74% 0,70% 0,56%
Principais
Web-Browsers
usuário
browser url
servidor web
Requisição (request) - Input Resposta (response) - Output
arquivos path h#p Textos Imagens vídeos Textos Imagens vídeos link
2. É um script PHP!
Requisição (request) - Input Resposta (response) - Output
5. O servidor Web envia a página HTML ao cliente.
6. O cliente (browser) exibe ao usuário o conteúdo HTML.
USUÁRIO
SERVIDOR WEB
1. O c l i e n t e ( b r o w s e r ) solicita uma página ao servidor Web.
3. O s e r v i d o r W e b aciona o módulo PHP.
4. O módulo PHP interpreta os trechos em PHP do script e devolve ao servidor Web a página processada.
Exibição
páginas dinâmicas
Requisição (request) - Input Resposta (response) - Output
6. O servidor Web envia a página HTML ao cliente.
SERVIDOR WEB
2. O servidor Web aciona o módulo PHP.
Acesso
à base de dados
Integração HTML + PHP + PostgreSQL 3. O script PHP estabelece a conexão com o SGBD, e executa a consulta. SGBD PostgreSQL 1. O cliente (browser) solicita uma página ao servidor Web.
4. O SGBD interpreta a instrução SQL e envia ao PHP u m r e c u r s o d e c o n s u l t a (resource) com o conjunto de resultados.
5. O PHP processa os valores do recurso (resource) e devolve ao servidor Web a página formatada em HTML.
surgiu por volta de 1994 criado por
Rasmus Ledorf com o nome de
P
ersonal
H
ome
P
age Tools para substituir um
conjunto de scripts Perl que ele usava no
desenvolvimento de sua página pessoal;
Mais tarde Zeev Suraski e Andi Gutmans reescreveram o
analisador do PHP que contava com o primeiro recurso de
orientação a objetos;
Hoje o termo PHP é um acrônimo recursivo para “Hypertext
Preprocessor” (pré-processador de hipertextos)
linguagem extremamente modularizada, ideal para uso
web
seu propósito principal é de implementar soluções web
velozes, simples e eficientes
pode ser embarcada no código HTML
provê suporte a um grande número de bases de dados
suporta os protocolos: IMAP, SNMP, NNTP, POP3, HTTP,
LDAP, XML-RPC, SOAP.
open source
código executado no servidor (server-side)
velocidade e robustez
independência de plataforma
estruturado e orientação a objeto
portabilidade: "Write once, run anywhere“
curva de aprendizagem curta
tipagem fraca
sintaxe similar a linguagem C/C++ e o PERL
Tags de abertura e fechamento do código php
Sintaxe
Básica
<?php
linha 1
linha 2
...
?>
<?
linha 1
linha 2
...
?>
<script language = “php”>
linha 1
linha 2
...
</script>
<%
linha 1
linha 2
...
%>
1
2
3
4
Tags de abertura e fechamento do código php
Exemplos:
Sintaxe Básica
1. <?php echo 'se você quer servir documentos XHTML ou XML, faça assim'; ?> 2. <script language="php">
echo 'alguns editores (como FrontPage) não
gostam de instruções de processamento';
</script>
3. <? echo 'esta é a mais simples, uma instrução de processamento SGML'; ?>
4. <% echo 'Você pode opcionalmente usar tags no estilo ASP'; %>
• Enquanto as tags vistas nos exemplos um e dois estão sempre disponíveis, o exemplo um é mais comumente usado, e recomendado, das duas.
•Tags curtas (exemplo três) estão disponíveis apenas quando são ativadas pela configuração short_open_tag no arquivo php.ini. • Tags no estilo ASP (exemplo quatro) estão disponíveis apenas quando ativadas atráves da diretiva de configuração asp_tags no arquivo php.ini.
O PHP requer que as instruções sejam terminadas com um
ponto-e-vírgula ao final de cada comando.
A tag de fechamento de um bloco de código PHP
automaticamente implica em um ponto-e-vírgula; você não
precisa ter um ponto-e-vírgula terminando a última linha de um
bloco PHP.
A tag de fechamento irá incluir uma nova linha logo após, se
estiver presente.
Separação de instruções
<?php
echo 'Este é um teste';
?>
<?php echo 'Este é um teste' ?>
O PHP suporta comentários no estilo 'C', 'C++' e shell do Unix
shell (estilo Perl). Por exemplo:
Os comentários de estilo "uma linha" apenas comentam até o final da linha ou
do bloco PHP de código corrente, o que chegar primeiro.
Isto significa que código HTML após // ... ?> ou # ... ?> SERÁ exibido:
Comentários
<?php
echo 'Isto é um teste'; // Estilo de comentário de uma linha em c++ echo 'Isto é ainda outro teste';
/* Este é um comentário de múltiplas linhas ainda outra linha de comentário */
echo 'Um teste final'; # Comentário de uma linha no estilo shell
?>
<h1>Isto é um <?php # echo 'simples';?> exemplo.</h1> <p>O cabeçalho acima irá dizer 'Isto é um exemplo'.</p>
O PHP suporta os oitos tipos primitivos.
São quatros tipos básicos:
boolean integer
float (número de ponto flutuante, ou também double) string
Dois tipos compostos:
array object
E finalmente dois tipos especiais:
resource NULL
O PHP não requer (ou suporta) a definição de tipo explícita na declaração de
variáveis: o tipo de uma variável é determinado pelo contexto em que a
variável é utilizada.
Isto significa que, se você atribuir um valor string para a variável $var , $var
se torna uma string. Se você então atribuir um valor inteiro para $var , ela
se torna um inteiro.
Tipos
<?php
$a_bool
=
TRUE
;
// um booleano
$a_str
=
"foo"
;
// uma string
$a_str2
=
'foo'
;
// uma string
$an_int
=
12
;
// um inteiro
$an_flt
=
1.63
;
// um float
Um exemplo da conversão automática do PHP é o operador de adição '+'.
Se qualquer um dos operadores for float, então todos os operadores são
avaliados como floats, e o resultado será um float. De outra forma, se os
operadores forem interpretados como integers então o resultado será um
integer.
Manipulação de Tipos
<?php
$foo = "0"; // $foo é string (ASCII 48)
$foo += 2; // $foo é agora um inteiro (2)
$foo = $foo + 1.3; // $foo é agora um float (3.3)
$foo = 5 + "10 pequenos porcos"; // $foo é inteiro (15)
$foo = 5 + "10.5 minúsculos porcos"; // $foo é float (15.5)
As variáveis no PHP são representadas por um cifrão ($) seguido pelo nome
da variável. Os nomes de variável no PHP fazem distinção entre maiúsculas e
minúsculas.
Um nome de variável válido se inicia com uma letra ou sublinhado, seguido
de qualquer número de letras, algarismos ou sublinhados.
Variáveis
<?php
$var = 'Bob';
$Var = 'Joe';
echo "$var, $Var"; // exibe "Bob, Joe"
$4site = 'not yet'; // inválido; começa com um número
$fração = 'not yet'; // inválido; possui caracteres especiais
$_4site = 'not yet'; // válido; começa com um sublinhado
$täyte = 'mansikka'; // válido; 'ä' é um caracter ASCII 228
O PHP oferece um grande número de variáveis pré-definidas para qualquer
script que ele execute.
Alguns exemplos:
$GLOBALS — Referencia todas variáveis disponíveis no escopo global $_SERVER — Informação do servidor e ambiente de execução
$_GET — HTTP GET variáveis $_POST — HTTP POST variables
$_FILES — HTTP File Upload variáveis
$_REQUEST — Variáveis de requisição HTTP $_SESSION — Variáveis de sessão
$_ENV — Environment variables $_COOKIE — HTTP Cookies
$php_errormsg — A mensagem de erro anterior
$HTTP_RAW_POST_DATA — Informação não-tratada do POST $http_response_header — Cabeçalhos de resposta HTTP $argc — O número de argumentos passados para o script $argv — Array de argumentos passados para o script
As principais categorias de operadores do PHP são:
Operadores de Atribuição
Operadores de String
Operadores Aritméticos
Operadores Relacionais (de comparação)
Operadores de Incremento/Decremento
Operadores Lógicos
Outros operadores menos utilizados:
Operador Bit-a-bit
Operadores de controle de erro
Operadores de Execução
Operadores de Arrays
Operadores de tipo
O operador básico de atribuição é "=". A sua primeira inclinação deve ser a de
pensar nisto como "é igual". Não. Isto quer dizer, na verdade, que o operando
da esquerda recebe o valor da expressão da direita (ou seja, "é configurado
para").
O valor de uma expressão de atribuição é o valor atribuído. Ou seja, o valor de
"$a = 3" é 3.
Além do operador básico de atribuição, há "operadores combinados“ que
permitem pegar um valor de uma expressão e então usar seu próprio valor
para o resultado daquela expressão. Por exemplo:
Operadores de Atribuição
<?php $a = 3;
$a += 5; // configura $a para 8, como se disséssemos: $a = $a + 5;
$b = "Bom ";
$b .= "Dia!"; // configura $b para "Bom Dia!", como em $b = $b . "Dia!";
Há dois operadores de string. O primeiro é o operador de concatenação ('.'),
que retorna a concatenação dos seus argumentos direito e esquerdo.
O segundo é o operador de atribuição de concatenação ('.='), que acrescenta
o argumento do lado direito no argumento do lado esquerdo.
Exemplos:
Operadores de String
<?php
$a = "Olá ";
$b = $a . "mundo!"; // agora $b contém "Olá mundo!"
$a = "Olá ";
$a .= "mundo!"; // agora $a contém "Olá mundo!"
Lembra-se da aritmética básica da escola? Estes operadores funcionam
exatamente como aqueles.
Operadores Aritméticos
Exemplo Nome Resultado
-$a Negação Oposto de $a.
$a + $b Adição Soma de $a e $b.
$a - $b Subtração Diferença entre $a e $b. $a * $b Multiplicação Produto de $a e $b.
$a / $b Divisão Quociente de $a por $b.
Permitem que se estabeleça relação entre dois valores ou seja, realiza a
comparação entre dois valores.
Operadores Relacionais
Exemplo Nome Resultado$a == $b Igual Verdadeiro (TRUE) se $a é igual a $b.
$a === $b Idêntico Verdadeiro (TRUE) se $a é igual a $b, e eles são do mesmo
tipo (introduzido no PHP4).
$a != $b Diferente Verdadeiro se $a não é igual a $b.
$a <> $b Diferente Verdadeiro se $a não é igual a $b.
$a !== $b Não idêntico Verdadeiro de $a não é igual a $b, ou eles não são do mesmo tipo (introduzido no PHP4).
$a < $b Menor que Verdadeiro se $a é estritamente menor que $b.
$a > $b Maior que Verdadeiro se $a é estritamente maior que $b.
$a <= $b Menor ou igual Verdadeiro se $a é menor ou igual a $b. $a >= $b Maior ou igual Verdadeiro se $a é maior ou igual a $b.
O PHP suporta operadores de pré e pós-incremento e decremento no estilo C.
Operadores de Incremento/
Decremento
Exemplo Nome Efeito
++$a Pré-incremento Incrementa $a em um, e então retorna $a. $a++ Pós-incremento Retorna $a, e então incrementa $a em um. --$a Pré-decremento Decrementa $a em um, e então retorna $a. $a-- Pós-decremento Retorna $a, e então decrementa $a em um.
Esses operadores são utilizados para realizar junções ou disjunções lógicas
entre valores.
Operadores de Lógicos
Exemplo Nome Resultado
$a and $b E Verdadeiro (TRUE) se tanto $a quanto $b são verdadeiros.
$a or $b OU Verdadeiro se $a ou $b são verdadeiros.
$a xor $b XOR Verdadeiro se $a ou $b são verdadeiros, mas não ambos.
! $a NÃO Verdadeiro se $a não é verdadeiro.
$a && $b E Verdadeiro se tanto $a quanto $b são verdadeiros.
A construção if é uma das mais importantes implementações de muitas linguagens,
incluindo o PHP.
Ela permite a execução condicional de fragmentos de código. O PHP implementa uma
estrutura if que é similar aquela do C:
Exemplo:
Estrutura de Controle - if
if (expressao) instrucoes
<?php
if ($a > $b)
echo "a é maior que b";
?>
// Quando existir mais de uma instrução utiliza-se os construtores { e }
<?php
if ($a > $b) {
echo "a é maior que b";
$b = $a;
}
else estende um comando if para executar uma instrução caso a expressão no
comando if seja avaliada como FALSE.
Exemplo:
O comando else só é executado se a expressão if for avaliada como FALSE, e se
havendo qualquer expressão elseif, somente se todas elas forem avaliadas como FALSE também.
Estrutura de Controle - else
<?php
if ($a > $b) {
echo "a é maior que b";
} else {
echo "a NÃO é maior que b";
}
elseif, como seu nome sugere, é uma combinação de if e else. Da mesma forma que o
else, ele estende um comando if para executar uma instrução diferente no caso de a expressão if original ser avaliada como FALSE. Porém, ao contrário de else, ele executará aquela expressão alternativa somente se a expressão condicional do elseif for avaliada como TRUE.
Exemplo:
Podem haver vários elseifs dentro da mesma instrução if.
No PHP, você também pode escrever 'else if' (em duas palavras) e o comportamento será idêntico a um
'elseif' (em uma só palavra).
Estrutura de Controle -
elseif/
else if
<?php
if ($a > $b) {
echo "a é maior que b";
} elseif ($a == $b) {
echo "a é igual a b";
} else {
echo "a é menor que b b";
}
while são o tipo mais simples de criar um 'loop' em PHP. Eles se comportam como seus
compatíveis em C. O formato básico de um comando while é:
Ele pede que o PHP execute os comandos aninhados repetidamente, enquanto a
expressão do while é avaliada como TRUE. O valor da expressão é verificada cada vez que se passa no começo do 'loop', desta forma, mesmo que este valor mude durante a execução do(s) comando(s) aninhado(s), a execução não parará até o fim da iteração (cada vez que o PHP executa os comandos dentro do 'loop' é uma iteração).
Estrutura de Controle -
while
<?php
/* exemplo 1 */ $i = 1;
while ($i <= 10) {
echo $i++; /* o valor impresso será $i depois do acréscimo (post-increment) */
}
?>
Loops do-while são bem similares aos loops while, exceto pelo fato de que a condição
é verificada no fim de cada iteração em vez de no começo. A diferença principal dos loops while regulares é que a primeira iteração de um loop do-while é garantidamente executada (a condição só é verificada no fim da iteração)
Há apenas uma sintaxe para loops do-while:
O loop acima rodaria exatamente uma vez, desde que depois da primeira iteração,
quando a condição é verificada, ela é avaliada como FALSE ($i não é maior que zero 0) e a execução do loop termina.
Estrutura de Controle -
do-while
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
Loops for são os laços mais complexos em PHP. Eles se comportam como os seus
compatíveis em C. A sintaxe de um loop for é:
A primeira expressão (expr1) é avaliada (executada) uma vez incondicionalmente no começo do
loop.
No começo de cada iteração, expr2 é avaliada. Se ela é avaliada como TRUE, o loop continua e
o(s) comando(s) aninhado(s) é(são) executado(s). Se é avaliada como FALSE, a execução do 'loop' termina.
No fim de cada iteração, expr3 é avaliada (executada).
Estrutura de Controle -
for
<?php /* exemplo 1 */ for ($i = 1; $i <= 10; $i++) { echo $i; } ?>
A instrução switch é similar a uma série de instruções IFs seguidas. Em muitas
ocasiões, você poderá ter que comparar a mesma variável (ou expressão) com muitos valores diferentes, executando códigos diferentes dependendo com qual valor ele se encaixar. É exatamente para isso que a instrução switch faz.
Os exemplos seguintes mostram duas maneiras diferentes de escrever a mesma coisa, uma
utilizando uma série de ifs e elseifs e a outra utlizando a instrução switch:
Estrutura de Controle -
switch
<?php
if ($i == 0) {
echo "i igual a 0";
} elseif ($i == 1) {
echo "i igual a 1";
} elseif ($i == 2) {
echo "i igual a 2";
}
?>
<?php
switch ($i) {
case 0:
echo "i igual a 0";
break;
case 1:
echo "i igual a 1";
break;
case 2:
echo "i igual a 2";
break; }
?>