Anda di halaman 1dari 160

PHP

Mauro Csar Lopes


27-09-2009

Alteraes
Data

Alterao

30/10/200
9

PHP

Desenvolvido originalmente por


Rasmus Lerdorf em 1994
site do PHP: http://www.php.net
PHP 2.0 1995
PHP 3.0 Junho/1998
PHP 4.0 Maio/2000
PHP 5.0 Julho/2004

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)

reas que os scripts PHP so usados

Scripts no lado do servidor (serverside)


Scripts de linha de comando
Aplicaes Desktop

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

Suporte a banco de dados

MySQL
Oracle
Interbase
PostgresSQL
Outros
...

11

Criao de scripts PHP


Todo trecho de programa PHP deve
estar entre as tags <?php e ?>para que
o servidor Web saiba que esse trecho
trata-se de um cdigo em PHP e que
deve ser processado
Exemplo:
<?php
echo "Hello, world !";
?>

12

Variveis

Variveis proveem uma maneira de


atribuir um nome a uma rea de
memria que conter um dado
Inicia por $ seguido de uma letra ou _ -
case sensitive, isto , sensvel ao caso
(distino entre letras maisculas e
minsculas)
Por exemplo, a varivel $Cor
completamente diferente da varivel
$cor
13

Comentrios

De uma linha:
// este o comentrio de uma linha
# este o comentrio de uma linha

De mais de uma linha:


delimitado por /* e */

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

Checagem dinmica de tipos

15

Inteiros (integer ou long)

$x = 4567; # inteiro
$y = -127; # inteiro negativo
$o = 0116; # inteiro em representao
octal (base 8)
$hex = 0x0F; # inteiro em
representao hexadecimal (base 16)

16

Ponto Flutuante (double ou float)

$PI=3.14;
$MOL=6.02e23; # uso da notao
cientfica

17

Strings

Uma string uma cadeia (sequncia) de


caracteres delimitadas pelos caracteres " ou '

Exemplos:
"1", "Policamp", 'Campinas', 'Minas Gerais'
Strings podem ser concatenadas usando o
operador '.'
Exemplos:
$paragrafo_html = "<p>" . $texto . "</p>";

18

Strings

Podem ser delimitadas por aspas simples


(literal) ou aspas duplas (onde h
interpretao de varveis e caracteres
especiais).
Caracteres especiais:

\n (new line)
\r (carriage return)
\t (tab)
\\ (barra invertida)
\$ (cifro)
\' (aspa simple)
\" (aspa dupla)
19

Booleano

Expressa um valor lgico que pode ser


verdadeiro (TRUE) ou falso (FALSE)
Exemplo:

<?php
$valida=true;
if($valida) {
print "Validado\n";
}
?>
20

Arrays
So estruturas de dados que podem
armazenar mltiplos valores
Exemplo:

$cores= array('vermelho', 'verde', 'azul');


$cor = $cores[1]; // retorna "verde" (2
elemento do array)
$cores[1]='amarelo'; // atribui novo valor (ao
2 elemento do array)
21

Arrays
Podem ser definidos como
mapeamentos ou vetores indexados
Exemplo:
<?php
$cores[0]="Red";
$cores[1]="Green";
$cores[2]="Blue";
?>

22

Arrays - tipos de ndices

Ordenado baseado em nmero


(comea no 0) (indexada
numericamente)
Associativo formado por
caracteres alfanumricos (indexada
por nome)

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)

Usamos a funo unset() para destruir


todo o array.

27

Funes de array

array_pop($array) retira e retorna o ltimo elemento do


array
array_push ($array,$var) insere um ou mais elementos no
fim de um array
array_shift ($array) retira e retorna o primeiro elemento de
um array
array_unshift ($a,$val) insere um novo elemento no inicio
de um array
array_rand ($array) retorna um ou mais elementos do array
array_reverse ($array) retorna um array com ordem inversa
array_keys ($array) retorna as chaves de um array
array_values ($array) retorna os valores de um array
sizeof () retorna o nmero de elementos do array
count () retorna a quantidade de elementos de um 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

Percorre os elemento de uma lista

Retorna o par chave/valor


corrente de um array e avana o seu cursor

$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");

uma forma de atribuio de vrios valores


ao mesmo tempo a diferentes variveis
31

Transformao de Tipos por coero


Coero a converso de um tipo em
outro tipo diferente mediante operao
realizada com tipos diferentes. Por exemplo:
$a=1;
$a = $a + "5";
Nesse exemplo a varivel $a numrica
(integer) na primeira atribuio e string na
segunda atribuio

32

Transformao explicita de tipos

Feita via typecast (como em


linguagem C)

Exemplo:

$a = 6;
# a um integer (6)
$a = (float) 6; # um float (6.0)

33

Casts permitidos
(int), (integer)

Integer

(real), (double), (float) Float


(string)

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__",

mas deve ser evitado:


a fornecer uma constante mgica
seu script
"alguma coisa");

?>

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

Operadores de Atribuio (2)

<<=
>>
&=
|=
^=

41

Operadores Bit a Bit

& (and) operao E


| (or) operao OU
^ (xor) operao OU-exclusivo
~ (not) operao NO
<< - deslocamento de bits a esquerda
multiplicao por 2
>> - deslocamento de bits a direita
diviso por 2
42

Operadores Lgicos

and (e)
or (ou)
xor (ou-exclusivo)
! (negao)
&& (e)
|| (ou)

43

Operadores de Comparao (ou


Condicionais)
== (igualdade)
!= (diferena)
< (menor que)
> (maior que)
<= (menor ou igual a)
>= (maior ou igual a)

44

Operador Ternrio (ou Condicional)


(expresso) ? (expresso2) : (expresso3);
Exemplo:
$a=5;
$a > 5 ? $b="1" : $b="0";
equivalente a:
if($a>5)
$b="1";
else
$b="0";
45

Operadores Unrios

-oper : troca o sinal do operando


++
-++$a :
depois
$a++ :
--$a :
$a-- :

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

Comando Condicional (2)

If (expresso)
comando1;
else
comando2;
If(expresso):
comando1;
...
comandoN;
else
comando1;
...
comandoN;
endif
51

Comando Condicional (3)


if(expresso1) {
comando1;
}
elseif(expresso2) {
comando2;
}
...
else{
comandoN;
}

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

Comandos de repetio (laos)

while
do .. while
for
foreach

56

while

while (expresso) {
comando;
}

while (expresso) :
comando1;
...
comandoN;
endwhile;
57

Exemplo comando while


<?php
$a = 1;
while ($a < 5) {
print $a;
$a++;
}
?>

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

Comandos break e continue


break: pode ser usado em laos do, for
e while.
O break "quebra" a execuo e continua
executando o prximo comando
break [n]; // onde n indica o nmero de
estruturas que devero ser finalizadas

65

Comandos break e continue


continue: interrompe a execuo e
avalia novamente a condio de teste
continue [n]; // onde n indica o nmero
de nveis que devero ser iniciados

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

Funes definidas pelo usurio


Uma funo deve ser definida com a usando a
sintaxe indicada abaixo:
<?php
function foo($arg_1, $arg_2, /* ..., */
$arg_n)
{
echo "Funo Exemplo.\n";
return $retval;
}
?>

71

Valores Retorno
A declarao return opcional
Qualquer tipo poder ser retornado
incluindo listas e objetos.

72

Exemplo do uso do return


<?php
function quadrado($num)
{
return $num * $num;
}
echo quadrado(4);

// sada '16'.

?>

73

Exemplo: Retornando um array com mltiplos


elementos
<?php
function numeros_pequenos()
{
return array (0, 1, 2);
}
list($zero,$um,$dois)=numeros_pequenos();

?>

74

Passagem de parmetros

Existem dois tipos de passagem de


parmetros:

por valor (by value)


por referncia (by reference)

O padro a passagem por valor.

75

Exemplo de passagem de parmetros


<?php
function incByValue($var, $valor) {
$var += $valor;
}
function incByRef(&$var, $valor) {
$var += $valor;
}
$a = 1;
echo incByValue($a,2); // retorna a=1
echo "a=$a\n";
$a = 1;
echo incByRef($a,2); // retorna a=3
echo "a=$a\n";
?>

76

Definio de valores padres na chamada de


funes
<?php
function incrementa($x, $valor=1)
{
$x += $valor;
return $x;
}
$a = 5;
echo "1. " . incrementa($a) . "<br>";
echo "2. " . incrementa($a,-4) . "<br>";
echo "3. " . incrementa($a,5) . "<br>";
?>
77

Modificadores de variveis

Variveis estticas (static)

mantm o valor que lhes foi atribudo na


ltima execuo. Usa o operador static.

Variveis variveis ($$)


Variveis de ambiente

78

Exemplo: uso de varivel esttica


<?php
function obtemProximo() {
static $contador=0;
return ++$contador;
}
echo obtemProximo(),"\n"; // retorna 1
echo obtemProximo(),"\n"; // retorna 2
echo obtemProximo(),"\n"; // retorna 3
?>

79

Variveis de Ambiente
<?php
phpinfo();
?>

80

Incluso de arquivos

include caso o arquivo no seja encontrado,


retornado um warning e o processamento da pgina
continua
require caso o arquivo no seja encontrado,
retornado um erro fatal
include_once se o arquivo j estiver sido incluso
ele ser ignorado
require_once

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

O comando include reavaliado a


cada chamada
A instruo require pode incluir apenas
um arquivo (a funo require no inclui
arquivos dinamicamente)

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

string gettype(mixed var);


Possveis valores de retorno:

Integer
Double
String
Array
Object
Unknown type

85

Formulrios HTML
<form
method="[GET|POST]"
action=""
name =""
>
...
</form>

86

Tratando informaes recebidas de


Formulrios
$_POST: array global que permite a
leitura de variveis passadas atravs
de um formulrio HTML usando
mtodo POST
$_GET : array global que permite a
leitura de variveis passadas na URL
atravs de um formulrio HTML usando
mtodo GET

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

Exemplo Mtodo POST


form.html
<form method="POST"
action="script.php">
Nome:
<input name="nome"
type="text">
</form>

script.php
<?php
$nome=$_POST["nome"];
Echo
"<p>nome=$nome";
</php>

90

Exemplo Mtodo GET


form.html
<form method="GET"
action="script.php">
Nome:
<input name="nome"
type="text">
</form>

script.php
<?php
$nome=$_GET["nome"];
echo
"<p>nome=$nome";
</php>

91

Algumas funes teis

string htmlspecialchars ( string $string [, int


$quote_style [, string $charset]] )
Converte caracteres especiais para a realidade
HTML
string stripslashes ( string $str )
Retorna uma string com as barras invertidas
retiradas. (\ se torna ' e assim por diante.) Duas
barras invertidas (\\) se tornam uma (\).

urlencode(string $str); Codifica uma URL

urldecode(string $str); Decodifica qualquer

%## codificado na string.

nl2br() Insere quebras de linha HTML antes de


todas newlines em uma string
92

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

Variveis Superglobals (2)


$_FILES
Variveis providas ao script atravs do upload de arquivos via POST
usando HTTP.
$_ENV
Variveis de ambientes providas ao script.
$_REQUEST
Variveis providas ao script via mecanismos de entrada como GET,
POST e COOKIE. Veja tambm import_request_variables().
$_SESSION
Variveis que esto registradas a uma sesso de associada a um script.

94

Funes teis na validao de


formulrios

bool empty ( mixed $var )


verifica se determinada varivel esta vazia
(nula)
strlen() retorna o nmero de caracteres de
uma string
strstr() acha a primeira ocorrncia de uma
string. Se no encontrar retorna falso (FALSE)
bool isset ( mixed $var [, mixed $var [, $...]] )
Informa se a varivel foi iniciada (Retorna
TRUE se var existir; FALSE seno)

95

Cookies e Sessions

HTTP um protocolo "sem estado"


O que significa o protocolo HTTP ser
um protocolo "sem estado" ?

Significa que ele no guarda informaes


entre uma transao e outra (elas so
independentes). Portanto necessrio um
mecanismo que permita que sejam
criadas "relaes entre as transaes"

96

Cookies e Sessions

Cookie e Session so mecanismos


que permitem armazenar informaes
enquanto o usurio navega entre
diferentes pginas de um site

97

Exemplos de uso de cookies e sesses

Autenticao de usurios
Carrinho de compras
Exibio de anncios ou imagens
Personalizao de pginas

98

Uso de Cookies

um arquivo texto armazenado no


computador do usurio (cliente) para ser
posteriormente recuperado pelo servidor
Formado por um par nome/valor
Tempo de validade: tempo no qual o cookie
estar armazenado no micro do usurio
O uso de cookie poder ser habilitado /
desabilitado pelo navegador (no cliente)

99

Uso de cookies

bool setcookie (string nome [, string valor [, int


validade [, string caminho [, string dominio [, int
seguro]]]]]), onde:

nome: nome do cookie (obrigatrio)


valor: o contedo do cookie (se no for fornecido o cookie ser
removido)
validade: tempo de validade do Cookie
caminho: caminho no servidor onde o cookie estar disponvel
domnio: domnio para o qual o cookie estar disponvel
Seguro: 0 ou 1 (se 1 o cookie apenas ser transmitido caso
segue uma conexo segura (HTTPS))

100

Exemplo

setcookie("username","joao@net");

setcookie ("username"); // remove o


cookie username

Obs: o envio de cookies dever ser a primeira


coisa a ser feita na transmisso de uma
pgina (antes inclusive das tags <html> e
<body>)
101

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

Exemplo de uso: autenticao de usurios

"Autenticao uma maneira que voc


tem de se certificar de que somente os
usurios que possuem autorizao
esto acessando uma rea restrita do
seu site"

104

Passos para Autenticao


Podemos dividir a autenticao de usurios
com o uso de cookies em trs passos:
1)
Criao de uma pgina de login
2)
Criao de uma rotina de validao para
que seja usada nas pginas que fazem uso
das reas restritas
3)
Criao de uma pgina de logout para os
usurios autenticados a fim de realizar a
excluso do cookie.

105

Exemplo de login usando cookies

login.html pgina inicial de login


login.php processa o pedido de
login; valida usurio e senha no banco
de dados
valida_cookies.inc valida os cookies
pagina_inicial.php pgina validada
logout.php limpa os cookies
armazenados no cliente; redireciona
para pgina de login
106

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

Criao de Sesso no PHP

Manual

Explcita (session_start)
Implcita (ao registrar uma varivel com a
funo session_register)

Automtica

Depende da diretiva session.auto_start


estar habilitada no arquivo php.ini

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

Pode permanecer armazenado


por mais tempo (mesmo aps o
navegador ser eliminado)

Dura enquanto o
usurio permanecer
dentro do site

Pequenos arquivos
armazenados na mquina do
usurio

Arquivos localizados
no servidor (um
arquivo por sesso)

112

Parmetros de Configurao - Session


session
Session Support
Registered save handlers
Registered serializer handlers

enabled
files user sqlite
php php_binary wddx

113

Parmetros de Configurao - Session


Directive

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

Parmetros de Configurao - Session


session.name

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

Comandos bsicos de sada

echo uma comando que imprime uma


ou mais variveis no console
print uma funo que imprime uma
string no console
var_dump imprime o contedo de uma
varivel
print_r imprime o contedo de uma
varivel, mas num formato mais legvel para
o programador

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

Manipulao de Arquivos e Diretrios

int fopen(string arquivo, string modo [,


int usar_path , resource contexto]])
onde:

arquivo:
modo:
usar_path:
contexto:

120

Manipulao de strings algumas


funes

strtoupper() retorna a string usando letras


maisculas
strtolower () retorna a string usando
letras minsculas
substr () retorna uma substring
strpad ()
strrepeat ()
strlen () retorna o tamanho da string
str_replace () substitui uma string por
outra
str_pos () retorna a posio de incio de
uma string em outra string
121

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

Dall'Oglio, P. PHP Programando com


Orientao a Objetos. Novatec.
2007.
NIEDERAUER, J. Web Interativa com
Ajax e PHP. Novatec, 2007.
NIEDERAUER, J. Desenvolvendo Web
Sites com PHP. Novatec, 2007.
Manual do PHP.
http://br.php.net/manual
125

Backup Slides

126

PHP e MySQL

127

Conectando do BD MySQL
<?php
$conexao = mysql_connect(
"localhost",
"usuario",
"password");
?>

128

Selecionando a Base de Dados

$nomebanco =
mysql_select_db('teste', $conexao);

129

Exemplo de Consulta em SQL


<?php
$resultado = mysql_query(
"select * from produto"
);
while($linha=mysql_fetch_array($resultado)
{
foreach($linha as $valor) {
echo "$valor<br />";
}
}
mysql_close($conexao);
?>

130

Fechando uma conexo

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

int mysql_connect(str host, str


username, str password)
int mysql_select_db(str database [,
int link_identifier])
int mysql_query(str query [, int
link_identifier])
array mysql_fetch_array(int result [,
int result_type])

133

mysql API

array mysql_fetch_row(int result)


int mysql_insert_id([int
link_identifier]) --> retorna o
nmero de linhas aps execuo de um
comando select
int mysql_affected_rows([int
link_identifier]) --> retorna o n de
linhas que foram afetados em uma
tabela por comandos update, insert e
delete

134

mysql API

mysql_error()

135

Exemplo

Aplicao de Cadastro de Alunos

http://127.0.0.1/aluno/tela1.html

Apresentao de Notcias

http://127.0.0.1/noticias2

136

Exemplos de Funes

137

Funes date e time


string date (
string $format
[, int $timestamp ]
)
Formata a data e a hora local
int time ( void )
Retorna o timestamp Unix atual

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

Qual a diferena entre os comandos


echo e print ?

echo "1","2"; // ok
print "1","2"; // erro: o comando print no
suporta ',' separando os operadores

Qual a diferena entre os comandos


require e include ?

145

Cabealho de um script PHP


<?php
------?>

146

Definio de variveis

Em PHP no necessrio fazer a


declarao de variveis

147

Delimitadores de string
'' aspas simples
s='um $nome\n';

"" aspas duplas


s="um $nome\n";

`` aspas invertidas (apstrofo)

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

Diferenas entre echo e print

TRUE 1 qualquer valor no vazio


tratado como verdadeiro
FALSE 0
echo "1","2"; // ok
print "1","2"; // erro: o comando print
no suporta ',' separando os
operadores
152

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

mysql_affected_rows Obtm o nmero de linhas


atingidas na operao anterior do MySQL
mysql_change_user Muda o usurio da conexo ativa
mysql_client_encoding Retorna o nome do conjunto
de caracteres
mysql_close Fecha a conexo MySQL
mysql_connect Abre uma conexo com um servidor
MySQL
mysql_create_db Cria um banco de dados MySQL
mysql_data_seek Move o ponteiro interno do
resultado
mysql_db_name Obtm dados do resultado(nome de
banco de dados)
mysql_db_query Envia uma consulta MySQL
mysql_drop_db Exclui um banco de dados MySQL
155

Funes MySQL

mysql_errno Retorna o valor numrico da mensagem de erro da


operao MySQL anterior
mysql_error Retorna o texto da mensagem de erro da operao
MySQL anterior
mysql_escape_string Escapa uma string para usar em uma
consulta MySQL
mysql_fetch_array Obtm uma linha como uma matriz
associativa, uma matriz numrica, ou ambas
mysql_fetch_assoc Obtm um linha do resultado como uma
matriz associativa
mysql_fetch_field Obtm informaes sobre uma coluna de um
resultado e retorna como um objeto
mysql_fetch_lengths Obtm o tamanho de cada sada no
resultado
mysql_fetch_object Obtm o resultado de uma linha como um
objeto
mysql_fetch_row Obtm uma linha como uma array numrica
mysql_field_flags Obtm as flags associadas ao campo
especificado em um resultado
156

Funes MySQL

mysql_field_len Retorna o tamanho do campo especificado


mysql_field_name Obtm o nome do campo especificado
em um resultado
mysql_field_seek Define o ponteiro do resultado para o
ndice de campo especificado
mysql_field_table Obtm o nome da tabela na qual o campo
especificado esta
mysql_field_type Obtm o tipo do campo especificado em
um resultado
mysql_free_result Libera um resultado da memria
mysql_get_client_info Obtm informaes do cliente MySQL
mysql_get_host_info Obtm informaes do servidor MySQL
mysql_get_proto_info Obtm informaes do protocolo
MySQL
mysql_get_server_info Obtm informaes do servidor
MySQL
157

Funes MySQL

mysql_info Obtm informao sobre a consulta mais recente


mysql_insert_id Obtm o ID gerado pela operao INSERT
anterior
mysql_list_dbs Lista os bancos de dados disponveis em um
servidor MySQL
mysql_list_fields Lista os campos de uma tabela MySQL
mysql_list_processes Lista os processos MySQL
mysql_list_tables Lista as tabelas em um banco de dados
MySQL
mysql_num_fields Obtm o numero de campos em um
resultado
mysql_num_rows Obtm o nmero de linhas em um resultado
mysql_pconnect Abre uma conexo persistente com um
servidor MySQL
mysql_ping pinga uma conexo com o servidor ou reconecta
se no houver conexo

158

Funes MySQL

mysql_query Envia uma consulta MySQL


mysql_real_escape_string Escapa os caracteres
especiais numa string para usar em um comando SQL,
levando em conta o conjunto atual de caracteres.
mysql_result Retorna dados do resultado
mysql_select_db Seleciona um banco de dados
MySQL
mysql_set_charset Sets the client character set
mysql_stat Retorna o status atual do sistema
mysql_tablename Retorna o nome da tabela do
campo
mysql_thread_id Returna o ID da thread atual
mysql_unbuffered_query Envia uma query para o
MySQL, sem retornar e colocar em buffer as linhas do
resultado
159

MySQLi

http://docs.php.net/manual/pt_BR/mys
qli.summary.php

160

Anda mungkin juga menyukai