Alteraes
Data
Alterao
30/10/200
9
PHP
Caractersticas do PHP
Cdigo aberto
Embutido no HTML
Baseado no servidor
Suporte a diversos Banco de Dados
Portabilidade
Histrico
PHP/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)
Sistemas operacionais
Linux
Unix like: Solaris, OpenBSD, MacOS
X, ...
Microsoft Windows
Servidores HTTP
Apache
IIS (Internet Information Service)
Tipo de programao
Procedural
Orientada a Objetos
Funcionalidades do PHP
Gerar HTML
Gerao de imagens
Arquivos PDF
Animaes em Flash
10
MySQL
Oracle
Interbase
PostgresSQL
Outros
...
11
12
Variveis
Comentrios
De uma linha:
// este o comentrio de uma linha
# este o comentrio de uma linha
14
Tipos de dados
No necessrio declarar uma varivel 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
Objeto
15
$x = 4567; # inteiro
$y = -127; # inteiro negativo
$o = 0116; # inteiro em representao
octal (base 8)
$hex = 0x0F; # inteiro em
representao hexadecimal (base 16)
16
$PI=3.14;
$MOL=6.02e23; # uso da notao
cientfica
17
Strings
Exemplos:
"1", "Policamp", 'Campinas', 'Minas Gerais'
Strings podem ser concatenadas usando o
operador '.'
Exemplos:
$paragrafo_html = "<p>" . $texto . "</p>";
18
Strings
\n (new line)
\r (carriage return)
\t (tab)
\\ (barra invertida)
\$ (cifro)
\' (aspa simple)
\" (aspa dupla)
19
Booleano
<?php
$valida=true;
if($valida) {
print "Validado\n";
}
?>
20
Arrays
So estruturas de dados que podem
armazenar mltiplos valores
Exemplo:
Arrays
Podem ser definidos como
mapeamentos ou vetores indexados
Exemplo:
<?php
$cores[0]="Red";
$cores[1]="Green";
$cores[2]="Blue";
?>
22
23
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
(numricos)
$cores[]="Red";
$cores[]="Green";
$cores[]="Blue";
24
Arrays Associativos
So conjunto ordenados de chaves e
valores, onde cada valor acessado
atravs de uma chave associada.
Exemplo:
$estados_e_capital = array (
'SP' => 'So Paulo',
'MG' => 'Belo Horizonte',
'RJ' => 'Rio de Janeiro',
'ES' => 'Vitria'
);
25
Arrays Associativos
<?php
$cor['red']=0;
$cor['green']=255;
$cor['blue']=0;
?>
ou
<?php
$cores=array('red'=>0, 'green'=>1, 'blue'=>2);
?>
26
Arrays (3)
27
Funes de array
28
Pseudo-Types
So tipos "falso" que ajudam da
legibilidade:
mixed: indica que o parmetro pode
aceitar mltiplos tipos mas no
necessariamente todos os tipos.
number: indica que o parmetro pode
ser tanto integer ou float
callback
29
Funo each
Funo each
$chamada = array (
"aluno1" => "francisco",
"alunos2" => "jose"
);
while(list($chave,$valor)=each($chamada)
{
echo "<p>Chave=[$chave],
Valor=[$valor]\n";
}
30
Listas
Cria variveis como se fossem arrays
Assim como array(), no exatamente uma
funo, e sim uma construo da prpria
linguagem.
list() usada para criar uma lista de
variveis em apenas uma operao.
Exemplo:
list($a,$b,$c)=array("a","b","c");
32
Exemplo:
$a = 6;
# a um integer (6)
$a = (float) 6; # um float (6.0)
33
Casts permitidos
(int), (integer)
Integer
String
(array)
Array
(objeto)
objeto
34
Constantes
Uma constante um identificador (nome) para um nico valor
que no se altera durante a execuo de um script)
Pr-definidas
Definidas pelo usurio
Exemplo:
define("MOL", 6.14e22);
define("PI", 3.1415);
echo MOL;
echo PI;
35
Constantes - Exemplo
<?php
// Nomes de constantes vlidos
define("FOO",
"alguma coisa");
define("FOO2",
"alguma outra coisa");
define("FOO_BAR", "alguma coisa mais");
// Nomes de constantes invlidas
define("2FOO",
"alguma coisa");
// Isto vlido,
// O PHP pode vir
// que danificar
define("__FOO__",
?>
36
Constantes "Mgicas"
<?php
print __FILE__ ; # nome do arquivo
echo "\n";
echo __LINE__; # n da linha
echo "\n";
echo __FUNCTION__; # nome da funo
echo "\n";
?>
37
Operadores
Aritmticos
Atribuio
Bit a bit
Lgicos
Comparao
Expresso condicional
Incremento e decremento
38
Operadores Aritmticos
+ Adio
- Subtrao
* Multiplicao
/ Diviso
% Resto da diviso (mdulo)
39
Operadores de Atribuio
= ($a=5);
+= ($a = $a + 5; $a+=5;)
-=
*=
/=
%=
.=
40
<<=
>>
&=
|=
^=
41
Operadores Lgicos
and (e)
or (ou)
xor (ou-exclusivo)
! (negao)
&& (e)
|| (ou)
43
44
Operadores Unrios
pr-incremento (incrementa $a em um e
retorna $a)
ps-incremento
pr-decremento
ps-decremento
46
Precedncia de Operadores
-
! ~ ++ -* / %
+ - .
<< >>
> < >= <=
== != <>
&
^
|
&&
||
?:
= += -= *= /= %= &= ~= <<= >>= ^=
AND
XOR
OR
47
Estruturas de Controle
Blocos
Comandos condicionais
Comando de repetio
48
Blocos
So sequncia de comandos
delimitados por abre e fecha chaves ({
e })
49
Comando Condicional
if (expresso)
comando;
if(expresso) {
comando1;
...
comandoN;
}
50
If (expresso)
comando1;
else
comando2;
If(expresso):
comando1;
...
comandoN;
else
comando1;
...
comandoN;
endif
51
52
Exemplo
<?php
$salario = 1000;
$desconto = 0.10; // 10%
$total = $salario - $salario*$desconto;
if($total>900) {
echo "";
}
?>
53
switch
switch (expresso) {
case valor1:
comando1;
break;
case valor2:
comando2;
break;
}
54
Exemplo - switch
<?php
$i = 1;
switch($i) {
case 0:
print "i
break;
case 1:
print "i
break;
case 2:
print "i
break;
default:
print "i
break;
}
?>
igual a 0";
igual a 1";
igual a 2";
no igual a 0, 1 ou 2";
55
while
do .. while
for
foreach
56
while
while (expresso) {
comando;
}
while (expresso) :
comando1;
...
comandoN;
endwhile;
57
58
do..while
$a=0;
do
{
echo "a=$a\n";
$a++;
}
while ($a<=10);
59
Exemplo do .. while
<?php
$acabou = false;
do
{
print "loop ...";
$acabou=true;
}
while (!$acabou);
?>
60
for
for (expr1; expr2; expr3 ) {
comando1
..
comandoN
}
61
foreach
Apresenta duas sintaxes:
foreach ($nome_array as $elemento)
{
comandos
}
ou
foreach ($nome_array as $chave => $valor)
{
comandos
}
62
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
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
66
Exemplo - break
<?php
# break.php
for($i=0; $i < 100; $i++) {
if($i == 10) {
break;
}
echo " $i ";
}
?>
67
Exemplo - continue
<?php
// exibe os nmeros pares
for($i=0; $i < 100; $i++) {
if($i % 2) {
continue;
}
echo " $i " . '<br>';
}
?>
68
Funes
Definio
Argumentos
Passagem de parmetros (valor ou
referncia)
Argumentos com valores pr-definidos
69
Funes - Sintaxe
function nome_da_funo(
[arg1, [arg2, ...,[argN]]]
)
{
comando1;
...
comandoN;
[ return valor_de_retorno ];
}
70
71
Valores Retorno
A declarao return opcional
Qualquer tipo poder ser retornado
incluindo listas e objetos.
72
// sada '16'.
?>
73
?>
74
Passagem de parmetros
75
76
Modificadores de variveis
78
79
Variveis de Ambiente
<?php
phpinfo();
?>
80
Incluso de arquivos
Obs:
include e include_once retornam uma advertncia
(warning) no caso de erro.
require e require_once retornam um erro fatal em
caso de erro.
81
Include x Require
82
Exemplo
biblioteca.php
<?php
/*
* funo quadrado
* retorna o quadrado de um nmero
*
*/
function quadrado($num)
{
return $num * $num;
}
?>
83
Exemplo
teste_include.php
<?php
// carrega o arquivo com a funo necessria
include 'biblioteca.php';
// imprime o quadrado de
echo quadrado(2);
?>
84
Tipo de varivel
Integer
Double
String
Array
Object
Unknown type
85
Formulrios HTML
<form
method="[GET|POST]"
action=""
name =""
>
...
</form>
86
87
Mtodo GET
$nome = $_GET['nome']
$email = $_GET['email']
echo "$_GET['nome']";
echo "$_GET['email']";
88
Mtodo POST
$_POST['nome']
$_POST['email']
echo "$_POST['nome']";
echo "$_POST['email']";
89
script.php
<?php
$nome=$_POST["nome"];
Echo
"<p>nome=$nome";
</php>
90
script.php
<?php
$nome=$_GET["nome"];
echo
"<p>nome=$nome";
</php>
91
Variveis Superglobals
$GLOBALS
Contm uma referencia a todas as variveis disponveis no escopo global no
script. As chaves desse array so os nomes das variveis globais.
$_SERVER
Variveis setadas pelo servidor web ou de outra forma relacionadas
diretamente ao ambiente de execuo do ambiente corrente.
$_GET
Variveis providas pelo script via URL query string.
$_POST
Variveis providas pelo script via HTTP POST.
$_COOKIE
Variveis providas ao script via HTTP cookies.
93
94
95
Cookies e Sessions
96
Cookies e Sessions
97
Autenticao de usurios
Carrinho de compras
Exibio de anncios ou imagens
Personalizao de pginas
98
Uso de Cookies
99
Uso de cookies
100
Exemplo
setcookie("username","joao@net");
Recuperao de Cookies
Uso do array superglobal $_COOKIE
Exemplo:
setcookie("username","joao@net");
E em uma outra pgina:
$_COOKIE["username"]; // l o valor do cookie
102
Recuperao de Cookies
IMPORTANTE: os cookies no podero ser
usados dentro da prpria pgina que os
criou. Ele poder apenas ser usado a partir
do envio da prxima solicitao vinda do
navegador do usurio (do cliente)
103
104
105
Sesso (Session)
um perodo de tempo durante o qual uma
pessoa navega pelas pginas de um site
Permitem o compartilhamento de informaes
entre diferentes pginas
Cada sesso possui um session id (SID) que
um identificador nico
107
Propagao do SessionID
Poder ser feito por:
cookies
propagao de variveis na URL
(endereo destino)
108
Manual
Explcita (session_start)
Implcita (ao registrar uma varivel com a
funo session_register)
Automtica
109
Exemplo de Session
<?php
session_start();
if(!isset($_SESSION['contador']))
{
$_SESSION['contador']=1;
}
else {
$_SESSION['contador']++;
}
$contador= $_SESSION['contador'];
echo "<p>Contador=$contador";
$sid=session_id();
echo "<p>session_id= $sid";
?>
110
Cookies x Sesses
Cookies
Tempo de durao
Pode permanecer
armazenado por mais
tempo (mesmo aps o
navegador ser eliminado)
Local de armazenamento
Pequenos arquivos
armazenados na
mquina do usurio
Sesses
Tempo de durao
Dura enquanto o usurio
permanecer dentro do
site
Local de
armazenamento
Arquivos localizados no
servidor (um arquivo
por sesso)
111
Cookies x Sesses
Tempo
de
durao
Local de
armazen
amento
Cookies
Sesses
Dura enquanto o
usurio permanecer
dentro do site
Pequenos arquivos
armazenados na mquina do
usurio
Arquivos localizados
no servidor (um
arquivo por sesso)
112
enabled
files user sqlite
php php_binary wddx
113
Local Value
Master Value
session.auto_start
Off
Off
session.bug_compat_42
On
On
session.bug_compat_warn
On
On
session.cache_expire
180
180
session.cache_limiter
nocache
nocache
session.cookie_domain
no value
no value
session.cookie_httponly
Off
Off
session.cookie_lifetime
session.cookie_path
Off
Off
no value
no value
session.gc_divisor
100
100
session.gc_maxlifetime
1440
1440
session.gc_probability
session.hash_bits_per_character
session.hash_function
session.cookie_secure
session.entropy_file
session.entropy_length
114
PHPSESSID
PHPSESSID
session.referer_check
no value
no value
session.save_handler
files
files
C:\xampp\tmp
C:\xampp\tmp
session.serialize_handler
php
php
session.use_cookies
On
On
session.use_only_cookies
Off
Off
session.save_path
session.use_trans_sid
115
116
Manipulao de Arquivos
fopen
feof
fgets
fwrite
fclose
file_put_contents
file_get_contents
117
Manipulao de Arquivos
file
copy
rename
unlink
file_exists
is_file
118
Manipulao de Diretrios
mkdir
getcwd
chdir
rmdir
opendir
closedir
readdir
119
arquivo:
modo:
usar_path:
contexto:
120
Classes e Objetos
Classes
Mtodos
122
Classe - Exemplo
class Complexo {
private $real;
private $imag;
public function real() {
return $this->real;
}
public function imag() {
return $this->imag;
}
}
123
Criao de Objetos
$z = new Complexo;
$parte_real = $z->real();
$parte_imag = $z->imag();
124
Bibliografia
Backup Slides
126
PHP e MySQL
127
Conectando do BD MySQL
<?php
$conexao = mysql_connect(
"localhost",
"usuario",
"password");
?>
128
$nomebanco =
mysql_select_db('teste', $conexao);
129
130
mysql_close($conexao)
131
mysql API
mysql_affected_rows() retorna o nmero de linhas afetadas por
uma operao
mysql_fetch_array() armazena a linha atual em um array
associativo
mysql_fetch_object() retorna uma linha como um objeto
mysql_fetch_row() armazena a linha atual em um array
mysql_result() retorna uma coluna do resultado
mysql_num_rows() retorna o numero de linhas de uma consulta
mysql_num_fields() retorna o numero de colunas de uma
consulta
mysql_field_name() retorna o nome de uma coluna em uma
consulta
132
mysql API
133
mysql API
134
mysql API
mysql_error()
135
Exemplo
http://127.0.0.1/aluno/tela1.html
Apresentao de Notcias
http://127.0.0.1/noticias2
136
Exemplos de Funes
137
138
Exemplos
<?php
echo
echo
echo
echo
echo
?>
date("Y-m-d",0),"\n";
date("Y-m-d",time()),"\n";
date("d/m/Y",time()),"\n";
date("d/m/y",time()),"\n";
date("d/m/y H:i:s",time()),"\n";
1969-12-31
2008-11-27
27/11/2008
27/11/08
27/11/08 09:20:11
139
Funo mktime
int mktime ([ int $hora
[, int $minuto
[, int $second
[, int $mes
[, int $dia
[, int $ano
[, int $is_dst ]]]]]]] )
Obtm um timestamp Unix para uma data
140
Exemplo
<?php
echo date("d/m/Y H:i:s",
mktime(2, 12, 4, 10, 3, 01));
?>
141
Funo strtotime
$data_formatada =
date("d/m/Y",strtotime($data));
echo "<td>$data_formatada</td>";
142
Datas - MySQL
date_format(date, format)
Exemplo:
SELECT *, date_format(data,'%d/%m/%Y') dt
FROM
teste.gasto g
where date_format(data,'%d/%m/%Y')='26/11/2008'
143
Exemplo
Seleciona os gastos entre duas datas:
SELECT *, date_format(data,'%d/%m/%Y') dt
FROM
teste.gasto g
where date_format(data,'%Y%m%d') between
'20081124' and
'20081125'
144
Questes
echo "1","2"; // ok
print "1","2"; // erro: o comando print no
suporta ',' separando os operadores
145
146
Definio de variveis
147
Delimitadores de string
'' aspas simples
s='um $nome\n';
heredoc
$str = <<<EOD
Aqui podemos definir
uma string
EOD;
148
Definio de Constantes
bool define (string nome, misto valor [,
bool case_insensitive])
Exemplo:
define (OK,true);
define(NOK,false);
echo OK;
149
Tipos de Variveis
Numricas
Alfanumricas (Strings)
Arrays
Objetos
150
Classes
Classes: so agrupamentos de
variveis e funes
Objeto: uma instncia de uma classe
151
PHP 5.3
Migrao
http://docs.php.net/migration53
Manual do PHP
http://docs.php.net/manual/pt_BR/inde
x.php
Referncia de Funes
http://docs.php.net/manual/pt_BR/funcr
ef.
php
153
Links
Revista PHP Magazine
http://www.phpmagazine.org.br
154
Funes MySQL
Funes MySQL
Funes MySQL
Funes MySQL
158
Funes MySQL
MySQLi
http://docs.php.net/manual/pt_BR/mys
qli.summary.php
160