Escrevi este mini curso de PHP que abrange desde o nível inicial básico até o intermediário/avançado. Este mini curso foi apresentado durante o evento WISM 2013, organizado pela PUC Minas Poços de Caldas, MG.
Pauta:
1. Introdução ao PHP;
2. Configuração do ambiente para desenvolvimento;
3. Variáveis em PHP;
4. Comandos Condicionais e Controle de fluxo;
5. Controle de fluxo: Switch;
6. Controle de fluxo: Laços de repetição;
7. Arrays em PHP;
8. Funções em PHP;
9. PHP e Banco de Dados MySQL;
10. PHP Orientado a Objetos;
11.Visão Geral: Frameworks PHP;
2. 1. Introdução ao PHP
2. Configuração do ambiente para
desenvolvimento
3. Variáveis em PHP
4. Comandos Condicionais e Controle de fluxo
5. Controle de fluxo: Switch
6. Controle de fluxo: Laços de repetição
7. Arrays em PHP
8. Funções em PHP
9. PHP e Banco de Dados MySQL
10.PHP Orientado a Objetos
11.Visão Geral: Frameworks PHP
Conteúdo do Minicurso
3. Sobre o professor
Prof. Rodrigo Bueno Santa Maria
E-mail: rodrigo@digitallymade.com.br
Formação Acadêmica
• Bacharel em Ciência da Computação pela PUC Minas Poços de Caldas.
• MBA Executivo Internacional em Gerenciamento de Projetos pela Fundação
Getúlio Vargas e Ohio University, USA.
Formação Profissional
• Analista e Desenvolvedor Java na IBM Brasil por 5 anos.
• Diretor Fundador da DigitallyMade Desenvolvimento Web desde 2006, com
atuação em todo o Brasil, além dos Estados Unidos, Canadá, e Japão com clientes
como a Rede Globo Internacional - filial Tokyo, Japão.
• Atua no mercado web desde 2001 com larga experiência em programação web
com PHP, HTML5, CSS3, Javascript (jQuery), Web 2.0 e Acessibilidade.
• Nas horas vagas atua com programação e integração com hardware, utilizando o
microcontrolador Arduino.
4. Comunicação na internet
• O cliente (navegador web) requisita uma
página ao servidor.
• O servidor web responde a requisição com a
página requisitada e a envia ao cliente.
Cliente
(Navegador Web) Servidor Web
Armazenamento
(HD)
Armazenamento
(Banco de Dados)
Requisição
Retorno
5. Protocolo HTTP
• Hypertext Transfer Protocol (HTTP) é o
protocolo utilizado para enviar e receber
informações na web.
• É baseado em requisições e respostas
entre clientes e servidores.
• Exemplo de requisição HTTP:
– GET / HTTP/1.1
• Foi criado especificamente para a
World Wide Web.
6. Clientes HTTP
• Os clientes de uma conexão HTTP são
os browsers (navegadores).
• São capazes de enviar requisições
HTTP e processar os retornos
recebidos, exibindo a página da web.
• Exemplos: Google Chrome, Internet
Explorer, Mozilla Firefox, Opera, etc.
7. Servidores HTTP
• São serviços HTTP que disponibilizam
as páginas na Internet.
• Exemplos:
– Apache HTTP Server
– Microsoft Internet Information Services
8. Páginas da internet
• São codificadas em linguagem HTML
(HyperText Markup Language, que
significa Linguagem de Marcação de
Hipertexto).
• Possuem ligações de hipertexto.
• São hospedadas por um servidor
web.
9. A linguagem PHP
• PHP = "PHP: Hypertext Preprocessor",
originalmente Personal Home Page.
• Criada por Rasmus Lerdorf em 1995.
• É executada no lado do servidor.
• É interpretada pelo módulo do PHP
instalado no servidor HTTP.
• Atualmente na versão 5.5.
• Mais em www.php.net
10. Características da
linguagem PHP
• Velocidade, robustez, sintaxe similar à
Linguagem C/C++, Perl e Java.
• Portabilidade com independência de
plataforma.
• Bem estruturada, suporte a orientação a
objetos e tipagem fraca.
• Manual do PHP:
– http://php.net/manual/pt_BR/
12. Configuração do ambiente
• Passo 1:
– Instalação e configuração do Apache
• Passo 2:
– Instalação e configuração do PHP
• Passo 3:
– Instalação e configuração do MySQL
• Passo 4:
– Instalação e configuração do PhpMyAdmin
• Mais detalhes acessar:
– http://goo.gl/Xu68n
13. Sugestão de Livros
Use a Cabeça! PHP & MySQL
Editora: Alta Books
Autor: LYNN BEIGHLEY & MICHAELMORRISON
ISBN: 9788576085027
Dominando PHP e MySQL
Editora: Alta Books
Autor: W. JASON GILMORE
ISBN: 9788576083023
14. A linguagem PHP
• PHP = "PHP: Hypertext Preprocessor",
originalmente Personal Home Page.
• Criada por Rasmus Lerdorf em 1995.
• É executada no lado do servidor.
• É interpretada pelo módulo do PHP
instalado no servidor HTTP.
• Atualmente na versão 5.5.
• Mais em www.php.net
15. Grandes sites feitos em PHP
Conheça abaixo alguns grandes sites desenvolvidos nesta
linguagem:
16. Características da linguagem
PHP
• Velocidade, robustez, sintaxe similar à
Linguagem C/C++, Perl e Java.
• Portabilidade com independência de
plataforma.
• Bem estruturada, suporte a orientação a
objetos e tipagem fraca.
• Manual do PHP:
– http://php.net/manual/pt_BR/
17. Vantagens
• Ótima performance
• Comunidade bastante ativa
• Suporte de grandes empresas
• Possibilidade de geração dinâmica de
imagens, arquivos PDF, etc.
• Suporte a ampla variedade de SGBDs
• Hospedagem web simples e barata
• Extensa API
18. Desvantagens
• Mistura de programação
estruturada com POO
• Facilidade de escrita de código de
difícil manutenção
• Linguagem de script (não gera
código binário)
• Não é muito bem aceita no
mercado corporativo (mas isso está mudando)
19. Frameworks PHP
• CakePHP, Zend Framework,
Symfony, CodeIgniter, Yii
framework, Prado, Akelos, etc.
• Pela grande variedade, fica até
difícil decidir qual utilizar.
• Mais em:
http://www.phpframeworks.com
21. Mercado de Trabalho
Sobrinhos
• Copiou
• Colou
• Funcionou
• Beleza!
Profissionais
• Atuam de forma
profissional
• Estudo constante
• Valorizam o mercado
• Estão em falta no
mercado
X
23. Palavras Reservadas
break abstract and array() as
clone const case catch class
endswitch do continue declare default
final enddeclare echo else elseif
goto endwhile endfor endforeach endif
instanceof for foreach function extends
namespace if implements include global
protected insteadof interface print include_once
static new or require_once private
unset() public require while return
switch throw try
use var xor
24. Comentários
• Comentários de uma linha:
<php
echo “Teste 1”; // meu comentário
echo “Teste 2”; # meu comentário
?>
• Comentários de mais de uma linha:
<php
echo “Teste 1”; /* Este é um comentário que pode ter
mais de uma linha */
?>
25. Olá Mundo – HTML + PHP
<html>
<head>
<title>Exemplo</title>
</head>
<body>
<?php
echo "Olá, Mundo!";
?>
</body>
</html>
35. Exercício 1
• Escreva um algoritmo PHP que
receba um valor gerado
aleatoriamente (rand()) e imprima o
texto "o valor é maior que 10" caso
isso seja verdade, senão imprima
"o valor é menor que 10".
36. Exercício 2
• Escreva um algoritmo PHP que
receba um valor gerado
aleatoriamente (rand()) e verifique
se esse valor é positivo, negativo
ou igual a zero. Imprima na tela:
"Valor Positivo", "Valor Negativo",
"Igual a Zero"
37. Exercício 3
• Escreva um algoritmo PHP que
receba quatro notas de um aluno,
calcule e imprima a média
aritmética das notas e a
mensagem de aprovado para
média superior ou igual a 7.0 ou a
mensagem de reprovado para
média inferior a 7.0.
38. Exercício 4
• Escreva um algoritmo PHP que
receba a altura e o sexo de uma
pessoa, calcule e imprima o seu
peso ideal, utilizando as seguintes
fórmulas:
– para homens: (72.7 * H) - 58
– para mulheres: (62.1 * H) – 44.7
39. Exercício 5
• Escreva um algoritmo PHP que
calcule e imprima o salário
reajustado de um funcionário de
acordo com a seguinte regra:
– salários até 300, reajuste de 50%
– salários maiores que 300, reajuste de
30%
41. Exercício 6
• Escreva um algoritmo PHP que
receba um valor qualquer e
imprima os valores de 0 até o valor
recebido, exemplo:
– Valor recebido = 9
– Impressão do programa – 0 1 2 3 4 5
6 7 8 9
42. Exercício 7
• Escreva um algoritmo PHP que
receba um valor qualquer e calcule
o seu fatorial (!), sabendo que
fatorial de um número é:
– 7! = 7*6*5*4*3*2*1
– 4! = 4*3*2*1
43. Exercício 8
• Escreva um algoritmo PHP que
receba dois valores quaisquer e
imprime todos os valores
intermediários a ele, veja exemplo:
– Primeiro Valor = 5
– Segundo Valor = 15
– Imprime: 6 7 8 9 10 11 12 13 14
44. Exercício 9
• Escreva um algoritmo PHP que
receba dois valores quaisquer e
efetue sua multiplicação utilizando
para isso apenas o operador “+”,
visto que:
– (3 * 5) = 5 + 5 + 5
– (4 * 12) = 12 + 12 + 12 + 12
45. Exercício 10
• Escreva um algoritmo PHP que receba
uma String, encontre o número total de
caracteres desta e imprima todos os
números que existem entre 1 e o
número total, exemplo:
• String = “Sistemas de Informação”
• total_caracteres = 22
• Imprime: 1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21 22
Dica: strlen();
46. Exercício 11
• Escreva um algoritmo PHP que
receba duas Strings, e descubra se
elas são iguais ou diferentes,
imprimindo “IGUAL” ou
“DIFERENTE” respectivamente.
47. Exercício 12
• Escreva um algoritmo PHP que
receba uma String e um caractere
de busca e descubra o número de
ocorrências deste caractere dentro
da String. Para isso utilize laço de
repetição, e as funções de String
“strlen()” e “substr()”.
48. • Arrays
– Numéricos
– Associativos
– Multidimensionais
– Funções para Arrays
– Exercícios
• Funções em PHP
– Introdução
– Funções com e sem retorno
– Funções com e sem parâmetros
– Exercícios
Próximos tópicos
49. O que são arrays?
• Variáveis que guardam um ou mais valores;
• Podem ser indexado por números ou strings;
Array (
[Griffin] => Array (
[0] => Peter
[1] => Lois
[2] => Megan
)
[Quagmire] => Array (
[0] => Glenn
)
[Brown] => Array (
[0] => Cleveland
[1] => Loretta
[2] => Junior
)
)
50. PHP – Arrays Numéricos
• Armazena cada elemento de forma numérica;
• Podem ter seu índice definido de forma
automática;
$nomes = array(“Joao",“Maria",“Jose");
• Ou podem ser definidos manualmente:
$nomes[5] = “Joao";
$nomes[32] = “Maria";
$nomes[26] = "Jose";
51. PHP – Arrays Associativos
• Cada índice é associado a um valor
(texto);
Exemplo:
$idades = array(‘Joao’=>32, ‘Maria’=>30, "Jose"=>34);
Ou assim:
$ages[“Joao”] = "32";
$ages[“Maria”] = "30";
$ages['Jose'] = "34";
52. PHP – Arrays Multidimensionais
• Em PHP um array multidimensional é
um array que possui como elementos
outros arrays;
$familia = array ("Cordeiro" => array ("Marcos", "Marcelo", "Murilo" ),
"Pereira" => array ( "Andressa" ),
"Silva" => array ( "Renata", "Marcia", "Junior" )
);
54. Acessando Arrays
• Para acessar o conteúdo de um Array
basta informar o índice desejado;
• Em $famila[“Pereira”][0] temos o valor
“Andressa”;
• Outro modo de visualizar o conteúdo de
um array é com a função print_r(array);
55. Funções para Arrays
• Algumas Funções para manipulação de
Arrays:
– count() — Conta o número de elementos
de uma variável ex. count($familia); //
retorna um int
– in_array() — Checa se um valor existe em
um array ex. in_array(“Cordeiro”); //Retorna
true/false
– Mais funções podem ser encontradas em:
http://www.php.net/manual/pt_BR/ref.array.
php
58. Exercício 3
• Melhore o exercício que gerava
seis dezenas aleatórias da Mega
Sena agora utilizando arrays para
não deixar gerar uma dezena
repetida.
– Dica: use rand(1,60) para gerar números
aleatórios;
59. Exercício 4
• Crie um array multi-dimensional
(matriz) e use print_r() para exibir
a estrutura na tela.
60. Exercício 5
• Crie um array para armazenar os
nomes dos meses do ano e utilize
a função date(“w”) para exibir o
nome do mês atual.
– Dica: a função date(“w”) retorna um número
inteiro de 0 a 6, 0 (para domingo)
até 6 (para sábado).
61. Exercício 6
• Crie um programa que entre com os
dados de altura e sexo de 10 pessoas.
• Imprima na tela quantas pessoas são
do sexo masculino e quantas pessoas
são do sexo feminino.
• Mostre também qual é a maior altura e
se essa altura é de um homem ou uma
mulher
62. Exercício 7
• Crie um programa que contenha um
array com várias idades de pessoas.
• Exiba quantas pessoas são maior de
idade (18 anos) e quantas são
menores.
63. Funções em PHP
• Funções são usadas para criar pequenos
trechos de códigos separados;
• Elas podem gerar um resultado (o que
chamamos de funções com retorno) ou apenas
executar uma rotina (funções sem retorno);
• Sua principal vantagem é condensar um trecho
do código e torná-lo utilizável em vários pontos
diferentes;
• Toda função deve ter um nome e possuir um
delimitador de parâmetro que são identificados
com parênteses;
64. Funções sem retorno
• Para criar funções em PHP usamos a palavra-
chave function, então, damos um nome para
nossa função.
• A regra geral é seguinte:
function nomeDaFuncao($param1, $param2,
$param_n)
{
código da função
};
65. Funções sem retorno
• Exemplo de função sem parâmetros de
entrada:
function nomeDaFuncao()
{
código da função
};
66. Funções sem retorno
• Exemplo de função simples:
<?php
function ola() {
echo ("Bem vindo ao PHP");
};
?>
67. Funções com retorno
• Funções com retorno são criadas da mesma
forma das funções sem retorno. Sua diferença
principal é que esta função devolve um
resultado para o código usando a palavra
reservada return;
• Por exemplo, podemos gerar um resultado de
uma soma e devolver este resultado para
quem chamou esta função;
68. Funções com retorno
• Exemplo:
<?php
function mostrarSomar() {
return 50+50;
};
echo "A soma de 50 + 50 é " . mostrarSomar();
?>
69. Funções com parâmetros
• Muitas vezes, funções devem receber dados
para processá-los. A inserção de dados na
função é dada por meio dos parâmetros ou
argumentos da função.
• Uma função pode ter quantos parâmetros
forem necessários desde que cada um seja
separado por vírgula e não tenha a mesma
denominação.
• Parâmetros ou argumentos possuem as
mesmas características de uma variável.
71. Exercício 1
• Escreva um programa em PHP
que tenha uma função chamada
meuNome() na qual imprime seu
nome completo na página.
72. Exercício 2
• Escreva um programa que tenha
uma função chamada soma() com
os argumentos x e y. A função
deverá fazer a soma dos
argumentos passados.
73. Exercício 3
• Escreva um programa que tenha
uma função impares() que
imprima os números ímpares entre
um determinado intervalo que é
dado como argumento da função.
74. Exercício 4
• Escreva uma função inverso() que
imprima a sequência inversa de
dois números passados como
argumentos da função.
75. Exercício 5
• Escreva uma função maior() que
retorne o maior número de um
array de números inteiros.
• Dica: use a função sort() que ordena um array
em ordem decrescente e count() que retorna o
número total de itens em um array.
76. • Principais Funções Nativas do PHP
– Funções de String
– Funções Matemáticas
– Funções para Arrays
– Funções para Manipulação de Arquivos
– Funções para conexão ao MySQL
• Exemplos práticos
Próximos tópicos
78. Funções de String
• string substr ( string $string , int $start [, int $le
ngth ] )
• Retorna parte de uma string.
• string: A string de entrada.
• start: Se start não for negativo, a string retornada iniciará na
posição start em string, começando em zero. Por exemplo, na string
'abcdef', o caractere na posição 0 é 'a', o caractere na posição 2 é 'c',
e assim em diante. Se start for negativo, a string retornada irá
começar no caractere start a partir do fim de string.
• length: Se length for dado e for positivo, a string retornada irá
conter length caracteres começando em start (dependendo do
tamanho de string). Se a string é menor do que start, será
retornado FALSE. Se length for dado e for negativo, então esta
quantidade caracteres serão omitidos do final de string (após a
posicão de inicio ter sido calculada quando start for negativo).
Se start denota uma posição além da truncagem, uma string vazia
será retornada.
79. Funções de String
• int strpos ( string $haystack , string $needle [, i
nt $offset ] )
• Retorna a posição numérica da primeira ocorrência
de needle dentro de haystack. Diferentemente de strrpos(),
esta função pode ter uma string inteira como o
parâmetro needle e toda a string será usada.
• Se needle não for encontrado, strpos() irá retornar
o boolean FALSE.
80. Funções de String
• int strlen ( string $string )
• Retorna o tamanho (quantidade de caracteres) da string.
• string: A string a ter seu tamanho contado.
81. Funções de String
• string md5 ( string $str [, bool $raw_output ] )
• Calcula o "hash MD5" de str usando » RSA Data Security, Inc.
MD5 Message-Digest Algorithm, e devolve esse hash.
• str: A string.
• raw_output: Se o opcional raw_output é definido
para TRUE, então o md5 é ao invés retornado no
formato binário com um tamanho de 16. Padrão
para FALSE.
82. Funções de String
• string htmlspecialchars ( string $string [, int $
quote_style [, string $charset ]] )
• Certos caracteres tem significado especial em HTML, e seriam
representados pela realidade HTML se eles estão
preservanado seus significados. Esta função retorna uma
string com algumas destas conversões feitas; As
transformações feitas são aquelas mais úteis para
programação web. Se você precisa que sejam transformados
todos os caracteres da realidade HTML, use htmlentities() no
lugar dela.
• As traduções executadas são:
– '&' (ampersand) torna-se '&'
– '"' (aspas dupla) torna-se '"' quando ENT_NOQUOTES não está definida.
– ''' (aspas simples) torna-se '''apenas quando ENT_QUOTES está definida.
– '<' (menor que) torna-se '<'
– '>' (maior que) torna-se '>'
83. Funções de String
• string htmlspecialchars ( string $string [, int $
quote_style [, string $charset ]] )
• Certos caracteres tem significado (notação) especial em
HTML. Esta função retorna uma string com algumas destas
conversões feitas; As transformações feitas são aquelas mais
úteis para programação web.
• As traduções executadas são:
– '&' (ampersand) torna-se '&'
– '"' (aspas dupla) torna-se '"' quando ENT_NOQUOTES não está
definida.
– ''' (aspas simples) torna-se ''' apenas quando ENT_QUOTES está
definida.
– '<' (menor que) torna-se '<'
– '>' (maior que) torna-se '>'
84. Funções de String
• string htmlentities ( string $string [, int $quote
_style [, string $charset [, bool $double_encode
]]] )
• Esta função é idêntica a htmlspecialchars(), exceto que
com htmlentities(), todos caracteres que tem entidade HTML
equivalente são convertidos para estas entidades.
• Algumas das traduções executadas são:
– º para 'º‘
– ª para 'ª‘
– á para 'á‘
– ç para 'ç'
85. Funções de String
• string nl2br ( string $string )
• Retorna string com '<br />' inserido antes de todas as
newlines.
• string: A string de entrada.
86. Funções de String
• array get_meta_tags ( string $filename [, bool
$use_include_path ] )
• Abre um arquivo html e percorre o cabeçalho em busca de
"meta" tags, Devolvendo num array todos os valores
encontrados.
• Exemplo:
No arquivo teste.html temos:
...
<head>
<meta name="author" content="jose">
<meta name="tags" content="php3 documentation">
...
</head><!-- busca encerra aqui -->
...
• Execução da função:
get_meta_tags("teste.html");
–Devolve o array:
array("author"=>"jose","tags"=>"php3 documentation");
87. Funções de String
• string strip_tags ( string $str [, string $allowabl
e_tags ] )
• Esta função retorna uma string retirando todas as tags HTML e
PHP de str.
• str: A string de entrada.
• allowable_tags: Você pode utilizar o segundo parâmetro, que é opcional, para
indicar tags que não devam ser retiradas.
88. Funções de String
• string urlencode ( string $str )
• Devolve a string fornecida, convertida para o formato
urlencode. Esta função é útil para passar variáveis para uma
próxima página.
• Exemplo:
<?php
echo '<a href=“meuscript.php?var=', urlencode($entrada_usuario), '">';
?>
89. Funções de String
• string urldecode ( string $str )
• Funciona de maneira inversa a urlencode, desta vez
decodificando a string fornecida do formato urlencode para
texto normal.
90. Funções de String
• mixed str_replace ( mixed $search , mixed $re
place , mixed $subject [, int &$count ] )
• Esta função retorna uma string ou um array com todas as
ocorrências de search em subject substituídas com o valor
dado para replace.
91. Funções de String
• string number_format ( float $number [, int $d
ecimals = 0 ] )
• Formata uma variável float em um número usando virgulas e
pontos para formatação do valor.
<?php
$number = 1200.5;
$reais = number_format($number, 2, ‘.', ‘,');
echo $reais;
?>
92. Funções de String
• Outras funções comuns:Função Descrição
string strtolower ( string $str ) Retorna string com todos os
caracteres do alfabeto convertidos
para minúsculas.
string strtoupper ( string $string ) Retorna string com todos os
caracteres do alfabeto convertidos
para maiúsculas.
string ucwords ( string $str ) Retorna uma string com o
primeiro caractere de cada
palavra em str em maiúscula, se
este caractere fizer parte do
alfabeto.
string trim ( string $str [, string $c
harlist ] )
Retira espaço no ínicio e final de
uma string
94. Funções Matemáticas
• float round ( float $val [, int $precision ] )
• Retornar um valor arredondado de val em precision casas
decimais. precision pode ser negativo ou zero (padrão).
• val: O valor para arredondar
• precision: O número opcional de dígitos decimais para arredondar, o padrão é 0
95. Funções Matemáticas
• float ceil ( float $value )
• Retorna o próximo maior valor inteiro arredondando para cima
do value, se fracionário.
• value: O valor para arredondar
96. Funções Matemáticas
• float floor ( float $value )
• Retorna o próximo menor valor inteiro ao se arredondar para
baixo o valor, se necessário.
• value: O valor para arredondar
97. Funções Matemáticas
• number pow ( number $base , number $exp )
• Retorna a base elevada ao expoente exp.
• base: A base para usar
• exp: O expoente
98. Funções Matemáticas
• float sqrt ( float $arg )
• Retorna a raiz quadrada de arg.
• arg: O argumento para processar
99. Funções Matemáticas
• Outras funções comuns:Função Descrição
float tan ( float $arg ) tan() retorna a tangente do
parâmetro arg. O
argumento arg deve estar em
radianos.
float sin ( float $arg ) sin() retorna o seno do
parâmetro arg. O
argumento arg deve estar em
radianos.
float cos ( float $arg ) cos() retorna o coseno de arg. O
parâmetro arg deve estar em
radianos.
float log ( float $arg [, float $base ]
)
Se o parâmetro opcional base for
informado, log() retorna
logbase arg, senão log() retorna o
logaritmo natural de arg.
101. Funções de Arrays
• bool shuffle ( array &$array )
• Essa função mistura de forma aleatória os elementos de um array.
102. Funções de Arrays
• bool sort ( array &$array [, int $sort_flags ] )
• Essa função ordena um array. Os elementos serão ordenados
do menor para o maior ao final da execução dessa função.
103. Funções de Arrays
• bool rsort ( array &$array [, int $sort_flags ] )
• Essa função ordena um array em ordem descrescente (do
maior para o menor).
104. Funções de Arrays
• string implode ( string $glue , array $pieces )
• Retorna uma string contendo os elementos da matriz na
mesma ordem com uma ligação entre cada elemento.
<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
print $comma_separated; // lastname,email,phon
e
?>
105. Funções de Arrays
• array explode ( string $delimiter , string $string
[, int $limit ] )
• Retorna uma matriz de strings, cada uma como substring
de string formada pela divisão dela a partir do delimiter.
<?php
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5
piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
...
?>
106. Funções de Arrays
• int count ( mixed $var [, int $mode ] )
• Conta os elementos de um array, ou propriedades em um
objeto.
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3
?>
107. Funções de Arrays
• array array_merge ( array $array1 [, array $arr
ay2 [, array $... ]] )
• Funde os elementos dois ou mais arrays de forma que os
elementos de um são colocados no final do array anterior.
Retorna o array resultante da fusão.
<?php
$array1 = array("cor" => "vermelho", 2, 4);
$array2 = array("a", "b", "cor" => "verde",
"forma" => "trapezoide", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
109. Funções de Manipulação de Arquivos
• resource fopen ( string $filename , string $mod
e [, bool $use_include_path =
false [, resource $context ]] )
• fopen() conecta um recurso nomeado, especificado por filename, a
um stream.
• <?php
$handle = fopen("/home/rasmus/file.txt", "r");
• ?>
110. Funções de Manipulação de Arquivos
• bool fclose ( resource $handle )
• O arquivo apontado por handle é fechado.
• <?php
fclose($handle);
• ?>
111. Funções de Manipulação de Arquivos
• string fgets ( resource $handle [, int $length ] )
• Retorna uma linha do ponteiro do arquivo.
<?php
$handle = @fopen("/tmp/arquivodeentrada.txt",
"r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
?>
112. Funções de Manipulação de Arquivos
• array file ( string $filename [, int $flags [, resou
rce $context ]] )
• Carrega todo um arquivo em um array.
<?php
$lines = file ('http://www.example.com/');
foreach ($lines as $line_num => $line) {
echo "Linha #<b>{$line_num}</b> : " .
htmlspecialchars($line) . "<br>n";
}
?>
113. Funções de Manipulação de Arquivos
• string file_get_contents ( string $filename [, in
t $flags [, resource $context [, int $offset [, int $
maxlen ]]]] )
• Carrega todo um arquivo para uma string.
<?php
$arquivo = file_get_contents(‘teste.txt');
echo $arquivo;
?>
115. Funções de Conexão com o MySQL
• resource mysql_connect ([ string $server [, str
ing $username [, string $password [, bool $new
_link [, int $client_flags ]]]]] )
• Abre ou reutiliza uma conexão com um servidor MySQL.
<?php
$link = mysql_connect('localhost', 'mysql_user',
'mysql_password');
if (!$link) {
die('Não foi possível conectar: ' .
mysql_error());
}
echo 'Conexão bem sucedida';
mysql_close($link);
?>
116. Funções de Conexão com o MySQL
• bool mysql_close ([ resource $link_identifier ]
)
• Fecha a conexão MySQL.
<?php
$link = mysql_connect('localhost', 'mysql_user',
'mysql_password');
if (!$link) {
die('Não foi possível conectar: ' .
mysql_error());
}
echo 'Conexão bem sucedida';
mysql_close($link);
?>
117. Funções de Conexão com o MySQL
• string mysql_error ([ resource $link_identifier ]
)
• Retorna o texto da mensagem de erro da operação MySQL anterior.
<?php
$link = mysql_connect("localhost", "mysql_user",
"mysql_password");
mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link).
"n";
?>
118. Funções de Conexão com o MySQL
• bool mysql_select_db ( string $database_na
me [, resource $ link_identifier ] )
• Seleciona um banco de dados MySQL. Retorna TRUE em caso de
sucesso ou FALSE em caso de falha.
<?php
$link = mysql_connect('localhost', 'mysql_user',
'mysql_password');
if (!$link) {
die('Not connected : ' . mysql_error());
}
// seleciona o db
$db_selected = mysql_select_db(‘teste', $link);
if (!$db_selected) {
die (‘Erro ao selecionar o DB teste: ' .
mysql_error());
}
?>
119. Funções de Conexão com o MySQL
• resource mysql_query ( string $query [, resour
ce $link_identifier ] )
• Envia uma consulta MySQL.
<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . mysql_error());
}
?>
120. Funções de Conexão com o MySQL
• array mysql_fetch_array ( resource $result [, i
nt $result_type ] )
• Retorna uma matriz que corresponde a linha obtida e move o ponteiro
interno dos dados adiante.
<?php
mysql_connect("localhost", "mysql_user",
"mysql_password") or
die("Não foi possível conectar: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result)) {
printf("ID: %s Name: %s", $row[“id”],
$row[“name”]);
}
mysql_free_result($result);
?>
121. Funções de Conexão com o MySQL
• bool mysql_free_result ( resource $result )
• Libera um resultado da memória.
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id =
'42'");
if (!$result) {
echo 'Não foi possível executar a consulta: ' .
mysql_error();
exit;
}
$row = mysql_fetch_assoc($result);
mysql_free_result($result);
echo $row['id'];
echo $row['email'];
?>
122. • Conexão PHP ao MySQL
• Diagrama de funcionamento
• Funções de conexão com o MySQL
• Exercícios práticos
Próximos tópicos
123. Conexão PHP ao MySQL
• PHP e MySQL formam um conjunto poderoso
para o desenvolvimento de aplicações web
que utilizam bancos de dados.
• O PHP permite conexões de forma nativa na
linguagem, possibilitando facilidade na
utilização de bancos de dados.
• Além do MySQL, a linguagem PHP suporta
diversos SGBD's como Oracle, Sybase,
Interbase(Firebird), mSQL, Microsoft SQL
Server, MSSQL, MySQL, PostgreSQL, entre
outros.
124. Diagrama de Funcionamento
Banco de Dados
MySQL
Aplicação PHP
Usuário Final
(front-end)
SQL Interação
Importante saber:
•Host (endereço) do servidor
•Usuário
•Senha
•Nome do banco de dados
126. Funções de Conexão com o MySQL
• Abaixo temos uma lista das funções mais
utilizadas quando estamos lidando com
conexão ao MySQL. Veremos em detalhes a
seguir.
– mysql_connect()
– mysql_close()
– mysql_select_db()
– mysql_error()
– mysql_errorno()
– mysql_query()
– mysql_fetch_array()
– mysql_free_result()
127. Funções de Conexão com o MySQL
• resource mysql_connect ([ string $server [, str
ing $username [, string $password [, bool $new
_link [, int $client_flags ]]]]] )
• Abre ou reutiliza uma conexão com um servidor MySQL.
<?php
$link = mysql_connect('localhost', 'mysql_user',
'mysql_password');
if (!$link) {
die('Não foi possível conectar: ' .
mysql_error());
}
echo 'Conexão bem sucedida';
mysql_close($link);
?>
128. Funções de Conexão com o MySQL
• bool mysql_close ([ resource $link_identifier ]
)
• Fecha a conexão MySQL.
<?php
$link = mysql_connect('localhost', 'mysql_user',
'mysql_password');
if (!$link) {
die('Não foi possível conectar: ' .
mysql_error());
}
echo 'Conexão bem sucedida';
mysql_close($link);
?>
129. Funções de Conexão com o MySQL
• bool mysql_select_db ( string $database_na
me [, resource $ link_identifier ] )
• Seleciona um banco de dados MySQL. Retorna TRUE em caso de
sucesso ou FALSE em caso de falha.
<?php
$link = mysql_connect('localhost', 'mysql_user',
'mysql_password');
if (!$link) {
die('Not connected : ' . mysql_error());
}
// seleciona o db
$db_selected = mysql_select_db(‘teste', $link);
if (!$db_selected) {
die (‘Erro ao selecionar o DB teste: ' .
mysql_error());
}
?>
130. Funções de Conexão com o MySQL
• string mysql_error ([ resource $link_identifier ]
)
• Retorna o número do erro da ultima função MySQL.
<?php
$link = mysql_connect("localhost", "mysql_user",
"mysql_password");
mysql_select_db(”bd_inesistente", $link);
Echo mysql_error($link). "n";
?>
131. Funções de Conexão com o MySQL
• int mysql_errorno ([ resource $link_identifier ]
)
• Retorna o texto da mensagem de erro da operação MySQL anterior.
<?php
$link = mysql_connect("localhost", "mysql_user",
"mysql_password");
mysql_select_db(”bd_inesistente", $link);
echo “Erro nro ”.mysql_errno($link) . "n";
?>
132. Funções de Conexão com o MySQL
• resource mysql_query ( string $query [, resour
ce $link_identifier ] )
• Envia uma consulta MySQL.
<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die(’Query Inválida: ' . mysql_error());
}
?>
133. Funções de Conexão com o MySQL
• array mysql_fetch_array ( resource $result [, i
nt $result_type ] )
• Retorna uma matriz que corresponde a linha obtida e move o ponteiro
interno dos dados adiante.
<?php
mysql_connect("localhost", "mysql_user",
"mysql_password") or
die("Não foi possível conectar: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, nomeFROM tabela");
while ($row = mysql_fetch_array($result)) {
printf("ID: %s Nome: %s", $row[“id”],
$row[“name”]);
}
mysql_free_result($result);
?>
134. Funções de Conexão com o MySQL
• bool mysql_free_result ( resource $result )
• Libera um resultado da memória.
<?php
$result = mysql_query("SELECT id, email FROM pessoa WHERE id =
'42'");
if (!$result) {
echo 'Não foi possível executar a consulta: ' .
mysql_error();
exit;
}
$row = mysql_fetch_assoc($result);
mysql_free_result($result);
echo $row['id'];
echo $row['email'];
?>
136. Exercícios
• 1) Crie um mural de recados em PHP com MySQL.
Os dados a serem solicitados são:
–Nome
–E-mail
–Cidade
–Recado
–Todos os dados deverão ficar salvos em um banco de
dados a ser criado.
–Haverá uma página para o usuário fazer a inserção do
recado e outra página para fazer a leitura dos recados.
137. Exercícios
• 2) Crie um sistema de biblioteca onde seja possível
buscar livros pelo título e listar os livros cadastrados.
Os dados dos livros são:
–Nome
–Autor
–Editora
–Resenha
–Haverá uma página para a listagem de todos os livros
cadastrados.
–Haverá um campo de busca que irá filtrar os livros e
exibir na mesma listagem.
–Cada item da listagem deverá exibir apenas o nome
do livro e conter um link que levará a outra página com
todos os dados do livro.
138. • PHP Orientado a Objetos (OO)
– Similaridade com Java
– Definição de classes
– Interfaces
– Heranças
Próximos tópicos
139. PHP OO – Similaridade com Java
• A programação PHP utilizando
orientação a objetos lembra muito o
Java.
• O PHP permite a criação de classes,
com métodos e atributos private, public,
protected e static.
140. Classes em PHP
• Abaixo um trecho de código de uma
classe:
class teste() {
}
$objeto = new teste();
141. Interfaces em PHP
• Interfaces de Objetos permite a criação
de código que especifica quais métodos
e variáveis uma classe deve
implementar, sem ter que definir como
esses métodos serão tratados.
• Interfaces são definidas usando a
palavra-chave 'interface', da mesma
maneira que uma classe comum, mas
sem nenhum dos métodos ter seu
conteúdo definido.
143. Utilizando uma interface
class Teste implements minhaInterface() {
public function setVar($var){
...
}
public function getHTML(){
...
}
}
144. PHP OO – Herança
• Herança é a caracteristica de um filho
obter algumas características do pai.
• Através da herança entre classes, uma
classe filha herda atributos e métodos
da classe pai.
• Não existem limite de níveis de
herança, porém, múltipla herança
explícita não é suportada no PHP.
145. Herança em PHP
<?php
class Veiculo
{
public $marcha;
public $quantidadeRodas;
public function passarMarcha()
{
// código
}
public function andar()
{
// código
}
}
?>
146. Herança em PHP
<?php
class Carro extends Veiculo
{
public function __construct()
{
$this->quantidadeRodas = 4;
}
}
$carro = new Carro();
$carro->andar();
?>
148. Frameworks PHP: O que são?
• Os frameworks, sejam eles escritos em PHP
ou em qualquer outra linguagem, oferecem ao
programador um conjunto de códigos prontos
que permitem realizar as tarefas predefinidas
no desenvolvimento de um aplicativo. Por
oferecer essa estrutura básica, os frameworks
tornam o desenvolvimento mais rápido e
reduzem o volume de código repetitivo escrito
pelo programador.
• Os frameworks também ajudam os
programadores iniciantes a criar aplicativos
mais estáveis, mesmo que eles ainda não
dominem completamente a linguagem de
programação e todas as outras tecnologias
necessárias para fazer o aplicativo funcionar.
149. Frameworks PHP mais usados
1. Yii
2. CodeIgniter
3. CakePHP
4. Zend
5. Symfony
6. PHPDevShell
7. Prado
8. Akelos
9. ZooP
10.QPHP
Fonte: http://www.phpframeworks.com/top-10-php-frameworks
Em Maio de 2013
150. Frameworks: Vantagens
• Código previamente testado
• Grande base de uso (reutilização de código)
• Não precisa “reinventar a roda”
• Experiência agregada
• Enfoque no mais importante: as regras de
negócios
• Agilidade no desenvolvimento
• Melhor segurança
• Melhor estabilidade
152. Framework CodeIgniter
• Desenvolvido pela empresa Ellis Lab
• Licença liberada para uso em qualquer tipo de
projeto (inclusive comerciais)
• Ótima documentação
• Grande comunidade de desenvolvedores
• Comprometimento com os usuários
• Estruturado em MVC
• Small footprint
• Baixa curva de aprendizado
• Versão Atual: 2.1.4
153. Padrão MVC
• É um padrão de projeto (design pattern)
• Acrônimo para Model, View, Controller
• Separa a lógica da aplicação da interface do
usuário
• Permite desenvolver e testar cada parte do
sistema de forma independente
155. Padrão MVC
• Um controlador (controller) pode enviar
comandos para sua visão associada para
alterar a apresentação da visão do modelo
(por exemplo, percorrendo um documento).
Ele também pode enviar comandos para o
modelo para atualizar o estado do modelo (por
exemplo, editando um documento).
156. Padrão MVC
• Um modelo (model) notifica suas visões e
controladores associados quando há uma
mudança em seu estado. Esta notificação
permite que as visões produzam saídas
atualizadas e que os controladores alterem o
conjunto de comandos disponíveis. Uma
implementação passiva do MVC monta estas
notificações, devido a aplicação não necessitar
delas ou a plataforma de software não suportá-
las.
157. Padrão MVC
• A visão (view) solicita do modelo a informação
que ela necessita para gerar uma
representação de saída.