2. WORLD WIDE WEB
• “Um sistema de documentos em hipermídia que
são interligados e executados na internet.”
• Criado na década de 80 pelo físico Tim Berners
Lee no CERN(Suiça) para publicar seus projetos.
• Linguagem de marcação HTML
3. PROBLEMA !?!
Páginas Estáticas
Não há interação com o usuário.
Atualização manual da página.
Cliente > Envia requisição para o servidor
Servidor> retorna para o cliente a página
requerida.
4. UMA SOLUÇÃO !
Algum script que gere páginas HTML.
Aproveitar recursos das linguagens.
Cliente > Envia requisição para o servidor.
Servidor> Gera uma página html conforme
dados passados junto na requisição e envia para o
cliente.
5. SCRIPTS CGI
“Importante tecnologia que permite gerar
páginas dinâmicas, permitindo a um navegador
passar parâmetros para um programa alojado
num servidor web. Assim, designamse por
scripts CGI os pequenos programas que
interpretam esses parâmetros e geram a página
depois de os processar.”
Leia o input do form do usuário.
Faça o que desejar com os dados.
Escreva a resposta HTML em STDOUT.
7. O QUE É?
PHP (um acrónimo recursivo para "PHP:
Hypertext Preprocessor“) tratase de uma
linguagem de programação dinâmica para a
WEB
8. HISTÓRICO
Surgiu por volta de 1994 nos EUA, como um pacote de
programas CGI criados por Rasmus Lerdof, com o
nome Personal Home Page Tools, para substituir um
conjunto de scripts Perl que ele usava no
desenvolvimento de sua página pessoal. Essa
primeira versão consistia num motor de interpretação
bem simples, que entendia algumas macros especiais
e alguns utilitários de uso comum nas homepages de
então. Um livro de visitas, um contador e outras
coisas
Em 1997 foi lançado o novo pacote da linguagem com
o nome de PHP/FI, trazendo a ferramenta Forms
Interpreter, um interpretador de comandos SQL. O
sufixo FI veio de um outro pacote escrito por Rasmus,
que interpretava dados de formulário html
9. Mais tarde, Zeev Suraski desenvolveu o analisador do PHP
3 que contava com o primeiro recurso de orientação a
objetos, que dava poder de alcançar alguns pacotes, tinha
herança e dava aos desenvolvedores somente a possibilidade
de implementar propriedades e métodos
Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4,
abandonando por completo o PHP 3, dando mais poder à
máquina da linguagem e maior número de recursos de
orientação a objetos. Outro recurso importante dessa versão
foi o suporte a sessões, bastante útil pra identificar o cliente
que solicitou determinada informação. O PHP4 trouxe como
novidade um otimizador chamado Zend, que permite a
execução muito mais rápida dos scripts
O problema sério do PHP 4 foi a criação de cópias de
objetos, pois a linguagem ainda não trabalhava com
apontadores ou handlers, como são as linguagens Java ,
Ruby e outras
10. O problema foi resolvido na versão atual do PHP, a
versão 5, que já trabalha com handlers. Caso se copie
um objeto, na verdade copiaremos um apontador, pois,
caso haja alguma mudança na versão original do
objeto, todas as outras também sofrem a alteração, o
que não acontecia na PHP 4
Futuro??? PHP 6: novas características e melhorias na
sintaxe que irão tornar mais fácil o uso, do ponto de
vista de orientação a objeto; suporte a Unicode em
muitas das funções principais.
12. CONSIDERAÇÕES
Grandes Comunidades;
Mais de 4.500.000 de desenvolvedores PHP no
mundo.
Mais de 5000 funções para manipulação de
arquivos, arrays, XML, banco de dados, ftp,
compressão de arquivos, imagens, PDF’s, etc.
Dos 4 sites mais visitados no mundo, 2 são feitos
em php: Yahoo e Facebook.
Quarta linguagem mais popular do mundo
(Julho, 2009).
13. CARACTERÍSTICAS
Aprendizado fácil e rápido. Código semelhante às
linguagens C/C++ e PERL
Linguagem ascendente. Ocupa a quarta posição
dentre as mais utilizadas no mundo
Suporte a um grande número de bancos de dados tais
como: dBase, Interbase, mSQL, mySQL, Oracle,
Sybase, PostgreSQL e vários outros
Suporte a outros serviços através de protocolos como
IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP
Multiplataforma
Código Aberto (Licença própria /GPL)
Vasta documentação e suporte – http://www.php.net
FREE
14. Interpretada
Rápidez e eficiência
Orientada a Objetos
Tipagem dinâmica não exige declaração de tipos de
dados, pois é capaz de escolhêlo de acordo com o
contexto, podendo alterálo durante a compilação
17. VARIÁVEIS
Iniciam com $ Ex: $i, $aux, $saldo, $cpf
global $var : deve ser utilizada para acessar uma variável global dentro de
uma função
define ("pi", 3.1415926536) : define constantes
static $var : são variáveis que possuem o mesmo tempo de vida das variáveis
globais, com a diferença de funcionarem apenas em escopos locais e serem
inicializadas apenas uma vez
locais: variáveis que só valem dentro de funções
Case sensitive Ex: $Nome <> $nome
Tipagem dinâmica:
Não é necessário ‘declarar’ tipo de variável;
Variável pode ser instanciada a qualquer momento;
Pode conter tipos de valores diferentes em momentos diferentes;
Ex: $aux = 9; $teste = $aux+3; $aux= “Teste”;
String:
Atribuídas com ‘ ’ ou “ ”. Mas, aspas duplas retornam o valor de outras
variáveis embutidas antes da atribuição.
Ex: $nome = ‘Felipe’; $msg = “Nome : $nome”; $msg = ‘Nome : $nome’;
Concatenadas com .
19. SINTAXE DE CONTROLE
If (<expressao>) {
/* blocodecomandos */
}else{ => (expressao)?expressao1:expressao2
/* outrobloco */
}
switch ($letra) {
case “a”: echo “letra a”; break;
case “b”: echo “letra b”; break;
default: echo “sei não, doido”;
}
20. COMANDOS DE REPETIÇÃO
while (<expressao>){ Ex: while ($i <10){
/*bloco de comandos*/ $i += $valor;
} }
do { Ex: do {
/*bloco de comandos*/ $i += $valor;
} while (<expressao>); } while ($i<10);
for (<inicializacao>;<condicao>;<incremento>){ Ex: for($i=1;$i<10;$i++){
/*bloco de comandos*/ $aux = $i;
} echo $aux;
}
23. ORIENTAÇÃO A OBJETOS
<?php
class Livro {
protect $autor;
private $paginas;
public $titulo;
function __construct() {
//construtor
}
function __destruct() {
//”destrutor”
}
function acrescentaCapitulo( $objCapitulo ) {
//Bloco de comandos
return $valorderetorno;
}
function registraAutor( Pessoa $objPessoa ) {
// Bloco de comandos
}
}
?>
24. HERANÇA
<?php
class LivroInfantil extends Livro {
function setFaixaEtaria($num) {
//Bloco de comandos
}
}
$autor = new Pessoa(“Fulano de Tal”);
$livromuitodjow = new LivroInfantil();
$livromuitodjow>titulo = “blablabla”;
$livromuitodjow>registraPessoa($autor);
?>
25. FORMULÁRIOS
O PHP capta os dados dos formulários por meio de duas variáveis:
• $_POST[<campo_form>]: retorna as variáveis do método POST. Esse
método esconde do usuário os dados enviados pela URL (mais seguro!)
e permite o envio de um número maior de informações.
• $_GET[<campo_form>]: retorna as variáveis do método GET. Este,
diferentemente do anterior, deixa visível os dados da URL e possui
um limite no envio das informações. Um bom exemplo de URL com
esse método é:
http://www.youtube.com/watch.php?v=OtCHOdLM9ZY
O caracter ‘ ? ’ indica o começo das variáveis. ‘ v ‘ é uma variável que
recebe ‘OtCHOdLM9ZY ‘, no caso, o código do vídeo que o usuário está
solicitando.
Exemplo de script PHP com formulário: http://127.0.0.1/form_post.php
26. ARQUIVOS
Mesmas funções do C!
• fopen(<nome_arquivo>,<mode>);
<mode>:
r: abre o arquivo no modo somente leitura e posiciona o
ponteiro no início do arquivo; o arquivo já deve existir;
r+: abre o arquivo para leitura/escrita, posiciona o ponteiro
no início do arquivo;
w: abre o arquivo no modo somente escrita; se o arquivo já
existir, será sobrescrito; senão, será criado um novo;
w+: abre o arquivo para escrita/leitura; se o arquivo já existir,
será sobrescrito; senão, será criado um novo;
a: abre o arquivo para anexar dados, posiciona o ponteiro no
final do arquivo; se o arquivo não existir, será criado um novo;
a+: abre o arquivo para anexo/leitura, posiciona o ponteiro no
final do arquivo; se o arquivo não existir, será criado um novo;
27. • fclose(<handle_arquivo>): fecha o arquivo aberto
para edição
• fwrite(<handle>,<string>):
handle: handle do arquivo onde os dados serão
escritos;
string: string a ser escrita no arquivo;
• fread(<handle>,< length>);
handle: handle do arquivo de onde os dados
serão lidos;
length: tamanho em bytes do buffer de leitura;
• fgets(<handle>,< length>);
handle: handle do arquivo de onde os dados
serão lidos;
length: tamanho em bytes do buffer de leitura;
28. • fgetc(): Esta função permite ler caractere por
caractere de um arquivo. Seguem a sintaxe e um
exemplo de utilização:
fgetc(<handle>);
handle: handle do arquivo de onde os dados serão
lidos;
• file(): Esta função lê um arquivo completo, e
armazena cada linha do arquivo como um elemento de
um array. Depois de ler todo o conteúdo do arquivo,
file() o fecha automaticamente, não sendo necessária
uma chamada a fclose(); Vejamos a sintaxe:
file(<filename>);
filename: nome ou caminho completo de um arquivo.
Exemplos de manipulação de arquivos com PHP:
http://127.0.0.1/files_read.php
http://127.0.0.1/files_write.php