mini curso de php

159
Minicurso de Programação PHP PUC Minas Poços de Caldas - WISM 2013 Prof. Rodrigo Santa Maria [email protected]

Upload: rodrigo-bueno-santa-maria-bs-mba

Post on 13-Jan-2017

768 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Mini Curso de PHP

Minicurso deProgramação PHP

PUC Minas Poços de Caldas - WISM 2013

Prof. Rodrigo Santa [email protected]

Page 2: Mini Curso de PHP

1. Introdução ao PHP2. Configuração do ambiente para

desenvolvimento3. Variáveis em PHP4. Comandos Condicionais e Controle de fluxo5. Controle de fluxo: Switch6. Controle de fluxo: Laços de repetição7. Arrays em PHP8. Funções em PHP9. PHP e Banco de Dados MySQL10.PHP Orientado a Objetos11.Visão Geral: Frameworks PHP

Conteúdo do Minicurso

Page 3: Mini Curso de PHP

Sobre o professorProf.RodrigoBuenoSantaMariaE-mail:[email protected]

FormaçãoAcadêmica• BacharelemCiência daComputaçãopelaPUCMinasPoçosdeCaldas.•MBAExecutivo InternacionalemGerenciamento deProjetospelaFundaçãoGetúlioVargaseOhioUniversity,USA.

FormaçãoProfissional• AnalistaeDesenvolvedorJavanaIBMBrasilpor5anos.•DiretorFundadordaDigitallyMade DesenvolvimentoWebdesde2006,comatuaçãoemtodooBrasil,alémdosEstadosUnidos,Canadá,eJapãocomclientescomoaRedeGloboInternacional - filialTokyo,Japão.• Atuanomercadowebdesde2001comlargaexperiência emprogramaçãowebcomPHP,HTML5,CSS3,Javascript(jQuery),Web2.0eAcessibilidade.•Nashorasvagasatuacomprogramaçãoeintegraçãocomhardware,utilizandoomicrocontroladorArduino.

Page 4: Mini Curso de PHP

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

Page 5: Mini Curso de PHP

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.

Page 6: Mini Curso de PHP

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.

Page 7: Mini Curso de PHP

Servidores HTTP• São serviços HTTP que disponibilizam

as páginas na Internet.• Exemplos:

– Apache HTTP Server– Microsoft Internet Information Services

Page 8: Mini Curso de PHP

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.

Page 9: Mini Curso de PHP

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

Page 10: Mini Curso de PHP

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/

Page 11: Mini Curso de PHP

Exemplo linguagem PHP<?php

echo “Olá mundo!”;

?>

Page 12: Mini Curso de PHP

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

Page 13: Mini Curso de PHP

Sugestão de Livros

Use a Cabeça! PHP & MySQLEditora: Alta BooksAutor: LYNN BEIGHLEY & MICHAEL MORRISONISBN: 9788576085027

Dominando PHP e MySQLEditora: Alta Books

Autor: W. JASON GILMOREISBN: 9788576083023

Page 14: Mini Curso de PHP

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

Page 15: Mini Curso de PHP

Grandes sites feitos em PHPConheçaabaixoalgunsgrandessitesdesenvolvidosnestalinguagem:

Page 16: Mini Curso de PHP

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/

Page 17: Mini Curso de PHP

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

Page 18: Mini Curso de PHP

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)

Page 19: Mini Curso de PHP

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

Page 20: Mini Curso de PHP

Configuração Comum:LAMP / WAMP

Page 21: Mini Curso de PHP

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

Page 22: Mini Curso de PHP

Delimitadores

<?php?>

<??>

<%%>

Configuráveis via php.ini

Fortemente recomendado

Page 23: Mini Curso de PHP

Palavras Reservadasbreak abstract and array() asclone const case catch classendswitch do continue declare defaultfinal enddeclare echo else elseifgoto endwhile endfor endforeach endifinstanceof for foreach function extendsnamespace if implements include globalprotected insteadof interface print include_oncestatic new or require_once privateunset() public require while return

switch throw tryuse var xor

Page 24: Mini Curso de PHP

Comentários• Comentários de uma linha:<php

echo “Teste 1”; // meu comentárioecho “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 */

?>

Page 25: Mini Curso de PHP

Olá Mundo – HTML + PHP<html>

<head><title>Exemplo</title>

</head><body>

<?phpecho "Olá, Mundo!";

?></body>

</html>

Page 26: Mini Curso de PHP

Atribuições<?php$variavel_1 = "Uma string";$variavel_2 = 'Outra string';

// Concatenando strings

echo $variavel_1 . $variavel_2;

?>

Page 27: Mini Curso de PHP

Atribuições<?php$x = 1; // inteiro

$y = 10.99; // float (double)

$z = $x*$y;$a = $x+"1"; // 2 (int)$b = $x."1"; // 11 (string)?>

Page 28: Mini Curso de PHP

Estruturas Condicionais<?php$x = 1;if ( $x == 1 ) {

echo "x == 1";} else if ( $x > 1 ) {

echo "x maior que 1";} else {

echo "x menor que 1";}?>

Page 29: Mini Curso de PHP

Estruturas de Repetição<?phpfor ( $i=0; $i<=9; $i++ ) {echo ‘$i=‘ . $i;

}echo PHP_EOL; // Quebra de linhawhile ( $i > 0 ) {echo ‘$i=‘ . $i;$i--;}

Page 30: Mini Curso de PHP

Arrays<?php$a = array();$a[2009] = "Lancado PHP 5.3";

$a[1995] = 'Criado PHP';

$a[2000] = "Lancado PHP 4";$a[2004] = "Lancado PHP 5";

asort($a);foreach ($a as $ano=>$texto) {

echo "Em {$ano}: $texto" . PHP_EOL ;

}

/*

Em 1995: Criado PHP

Em 2000: Lancado PHP 4

Em 2004: Lancado PHP 5

Em 2009: Lancado PHP 5.3

*/

Page 31: Mini Curso de PHP

Funções<?phpfunction somar($a, $b) {

return $a + $b;

}

function debug($a , $tag = '[Debug] ') {

$tipo = gettype($a);echo $tag . $a . " ({$tipo})";

}

echo somar(2,3) . PHP_EOL ; // 5

echo debug("42"); // [Debug] 42 (string)?>

Page 32: Mini Curso de PHP

Inclusão de arquivos<?phpinclude '/path/para/arquivo.php';

// include_once

// require

// require_once

$o = new Classe_Do_Arquivo();

?>

Page 33: Mini Curso de PHP

Vamos para a prática???

Page 34: Mini Curso de PHP

COMANDOS DE CONDIÇÃO –Utilizando if() - else if() - else

Page 35: Mini Curso de PHP

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".

Page 36: Mini Curso de PHP

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"

Page 37: Mini Curso de PHP

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.

Page 38: Mini Curso de PHP

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

Page 39: Mini Curso de PHP

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%

Page 40: Mini Curso de PHP

LAÇOS DE REPETIÇÃO –Utilizandndo for() - while() e

funções de String

Page 41: Mini Curso de PHP

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

Page 42: Mini Curso de PHP

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

Page 43: Mini Curso de PHP

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

Page 44: Mini Curso de PHP

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

Page 45: Mini Curso de PHP

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();

Page 46: Mini Curso de PHP

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.

Page 47: Mini Curso de PHP

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()”.

Page 48: Mini Curso de PHP

• 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

Page 49: Mini Curso de PHP

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

) )

Page 50: Mini Curso de PHP

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

Page 51: Mini Curso de PHP

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

Page 52: Mini Curso de PHP

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

);

Page 53: Mini Curso de PHP

PHP – Arrays MultidimensionaisArray

([Cordeiro] => Array

( [0] => Marcos[1] => Marcelo[2] => Murilo

)[Pereira] => Array

([0] => Andressa)

[Silva] => Array([0] => Renata[1] => Marcia[2] => Junior)

)

Page 54: Mini Curso de PHP

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

Page 55: Mini Curso de PHP

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

Page 56: Mini Curso de PHP

Exercício 1

• Utilizando uma estrutura de repetição monte um array numérico.

Page 57: Mini Curso de PHP

Exercício 2

• Calcule a média de 5 números contidos em um array.

Page 58: Mini Curso de PHP

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;

Page 59: Mini Curso de PHP

Exercício 4

• Crie um array multi-dimensional (matriz) e use print_r() para exibir a estrutura na tela.

Page 60: Mini Curso de PHP

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).

Page 61: Mini Curso de PHP

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

Page 62: Mini Curso de PHP

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.

Page 63: Mini Curso de PHP

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;

Page 64: Mini Curso de PHP

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};

Page 65: Mini Curso de PHP

Funções sem retorno• Exemplo de função sem parâmetros de

entrada:

function nomeDaFuncao(){

código da função};

Page 66: Mini Curso de PHP

Funções sem retorno• Exemplo de função simples:

<?php

function ola() {echo ("Bem vindo ao PHP");

};

?>

Page 67: Mini Curso de PHP

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;

Page 68: Mini Curso de PHP

Funções com retorno• Exemplo:

<?phpfunction mostrarSomar() {

return 50+50;};

echo "A soma de 50 + 50 é " . mostrarSomar();

?>

Page 69: Mini Curso de PHP

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.

Page 70: Mini Curso de PHP

Funções com parâmetros• Exemplo:<?phpfunction somar ($x, $y){ return $x+$y; };function subtrair ($x, $y){ return $x-$y; };function multiplicar ($x, $y){ return $x*$y; };function dividir ($x, $y){ return $x/$y; };$nr1 = 10;$nr2 = 5;echo ("<p>Operações matemáticas:</p>" . "<p>$nr1 + $nr2 = " . somar ($nr1, $nr2) . "<br>$nr1 - $nr2 = " . subtrair ($nr1, $nr2) . "<br>$nr1 * $nr2 = " . multiplicar ($nr1, $nr2) . "<br>$nr1 / $nr2 = " . dividir ($nr1, $nr2) . "</p>");?>

Page 71: Mini Curso de PHP

Exercício 1

• Escreva um programa em PHP que tenha uma função chamadameuNome() na qual imprime seu nome completo na página.

Page 72: Mini Curso de PHP

Exercício 2

• Escreva um programa que tenha uma função chamada soma() comos argumentos x e y. A função deverá fazer a soma dosargumentos passados.

Page 73: Mini Curso de PHP

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.

Page 74: Mini Curso de PHP

Exercício 4

• Escreva uma função inverso() que imprima a sequência inversa de dois números passados como argumentos da função.

Page 75: Mini Curso de PHP

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.

Page 76: Mini Curso de PHP

• 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

Page 77: Mini Curso de PHP

Funções de String

Page 78: Mini Curso de PHP

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.

Page 79: Mini Curso de PHP

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.

Page 80: Mini Curso de PHP

Funções de String• int strlen ( string $string )

• Retorna o tamanho (quantidade de caracteres) da string.• string: A string a ter seu tamanho contado.

Page 81: Mini Curso de PHP

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.

Page 82: Mini Curso de PHP

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 '&amp;'– '"' (aspas dupla) torna-se '&quot;' quando ENT_NOQUOTES não está definida.– ''' (aspas simples) torna-se '&#039;' apenas quando ENT_QUOTES está definida.– '<' (menor que) torna-se '&lt;'– '>' (maior que) torna-se '&gt;'

Page 83: Mini Curso de PHP

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 '&amp;'– '"' (aspas dupla) torna-se '&quot;' quando ENT_NOQUOTES não está

definida.– ''' (aspas simples) torna-se '&#039;' apenas quando ENT_QUOTES está

definida.– '<' (menor que) torna-se '&lt;'– '>' (maior que) torna-se '&gt;'

Page 84: Mini Curso de PHP

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 '&ordm;‘– ª para '&ordf;‘– á para '&aacute;‘– ç para '&ccedil;'

Page 85: Mini Curso de PHP

Funções de String• string nl2br ( string $string )

• Retorna string com '<br />' inserido antes de todas as newlines.

• string: A string de entrada.

Page 86: Mini Curso de PHP

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

Page 87: Mini Curso de PHP

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.

Page 88: Mini Curso de PHP

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:<?phpecho '<a href=“meuscript.php?var=', urlencode($entrada_usuario), '">';?>

Page 89: Mini Curso de PHP

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.

Page 90: Mini Curso de PHP

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.

Page 91: Mini Curso de PHP

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;?>

Page 92: Mini Curso de PHP

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 $charlist ] )

Retira espaço no ínicio e final de uma string

Page 93: Mini Curso de PHP

Funções Matemáticas

Page 94: Mini Curso de PHP

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

Page 95: Mini Curso de PHP

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

Page 96: Mini Curso de PHP

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

Page 97: Mini Curso de PHP

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

Page 98: Mini Curso de PHP

Funções Matemáticas• float sqrt ( float $arg )

• Retorna a raiz quadrada de arg.

• arg: O argumento para processar

Page 99: Mini Curso de PHP

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.

Page 100: Mini Curso de PHP

Funções de Arrays

Page 101: Mini Curso de PHP

Funções de Arrays• bool shuffle ( array &$array )

• Essa função mistura de forma aleatória os elementos de um array.

Page 102: Mini Curso de PHP

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.

Page 103: Mini Curso de PHP

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).

Page 104: Mini Curso de PHP

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,phone

?>

Page 105: Mini Curso de PHP

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 piece5piece6";$pieces = explode(" ", $pizza);echo $pieces[0]; // piece1echo $pieces[1]; // piece2

...?>

Page 106: Mini Curso de PHP

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?>

Page 107: Mini Curso de PHP

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);?>

Page 108: Mini Curso de PHP

Funções de Manipulaçãode Arquivos

Page 109: Mini Curso de PHP

Funções de Manipulação de Arquivos

• resource fopen ( string $filename , string $mode [, 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");

• ?>

Page 110: Mini Curso de PHP

Funções de Manipulação de Arquivos

• bool fclose ( resource $handle )

• O arquivo apontado por handle é fechado.

• <?phpfclose($handle);

• ?>

Page 111: Mini Curso de PHP

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

}?>

Page 112: Mini Curso de PHP

Funções de Manipulação de Arquivos

• array file ( string $filename [, int $flags [, resource $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";}

?>

Page 113: Mini Curso de PHP

Funções de Manipulação de Arquivos

• string file_get_contents ( string $filename [, int $flags [, resource $context [, int $offset [, int $maxlen ]]]] )

• Carrega todo um arquivo para uma string.

<?php

$arquivo = file_get_contents(‘teste.txt');echo $arquivo;

?>

Page 114: Mini Curso de PHP

Funções de Conexãocom o MySQL

Page 115: Mini Curso de PHP

Funções de Conexão com o MySQL

• resource mysql_connect ([ string $server [, string $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);?>

Page 116: Mini Curso de PHP

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);?>

Page 117: Mini Curso de PHP

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";?>

Page 118: Mini Curso de PHP

Funções de Conexão com o MySQL

• bool mysql_select_db ( string $database_name [, 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());

}?>

Page 119: Mini Curso de PHP

Funções de Conexão com o MySQL

• resource mysql_query ( string $query [, resource $link_identifier ] )

• Envia uma consulta MySQL.

<?php$result = mysql_query('SELECT * WHERE 1=1');if (!$result) {

die('Invalid query: ' . mysql_error());}

?>

Page 120: Mini Curso de PHP

Funções de Conexão com o MySQL

• array mysql_fetch_array ( resource $result [, int $result_type ] )

• Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante.

<?phpmysql_connect("localhost", "mysql_user",

"mysql_password") ordie("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);?>

Page 121: Mini Curso de PHP

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'];?>

Page 122: Mini Curso de PHP

• Conexão PHP ao MySQL• Diagrama de funcionamento• Funções de conexão com o MySQL• Exercícios práticos

Próximos tópicos

Page 123: Mini Curso de PHP

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.

Page 124: Mini Curso de PHP

Diagrama de Funcionamento

Banco de DadosMySQL

Aplicação PHPUsuário Final

(front-end)SQL Interação

Importante saber:•Host (endereço) do servidor•Usuário•Senha•Nome do banco de dados

Page 125: Mini Curso de PHP

Funções de Conexãocom o MySQL

Page 126: Mini Curso de PHP

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()

Page 127: Mini Curso de PHP

Funções de Conexão com o MySQL

• resource mysql_connect ([ string $server [, string $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);?>

Page 128: Mini Curso de PHP

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);?>

Page 129: Mini Curso de PHP

Funções de Conexão com o MySQL

• bool mysql_select_db ( string $database_name [, 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());

}?>

Page 130: Mini Curso de PHP

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";?>

Page 131: Mini Curso de PHP

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";?>

Page 132: Mini Curso de PHP

Funções de Conexão com o MySQL

• resource mysql_query ( string $query [, resource $link_identifier ] )

• Envia uma consulta MySQL.

<?php$result = mysql_query('SELECT * WHERE 1=1');if (!$result) {

die(’Query Inválida: ' . mysql_error());}

?>

Page 133: Mini Curso de PHP

Funções de Conexão com o MySQL

• array mysql_fetch_array ( resource $result [, int $result_type ] )

• Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante.

<?phpmysql_connect("localhost", "mysql_user",

"mysql_password") ordie("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);?>

Page 134: Mini Curso de PHP

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'];?>

Page 135: Mini Curso de PHP

ExercíciosPráticos

Page 136: Mini Curso de PHP

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.

Page 137: Mini Curso de PHP

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.

Page 138: Mini Curso de PHP

• PHP Orientado a Objetos (OO)– Similaridade com Java– Definição de classes– Interfaces– Heranças

Próximos tópicos

Page 139: Mini Curso de PHP

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.

Page 140: Mini Curso de PHP

Classes em PHP• Abaixo um trecho de código de uma

classe:

class teste() {

}

$objeto = new teste();

Page 141: Mini Curso de PHP

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.

class teste() {

Page 142: Mini Curso de PHP

Interfaces em PHPinterface minhaInterface() {

public functionsetVar($var);

public function getHTML();

}

Page 143: Mini Curso de PHP

Utilizando uma interfaceclass Teste implements minhaInterface() {

public function setVar($var){...}

public function getHTML(){...}

}

Page 144: Mini Curso de PHP

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.

Page 145: Mini Curso de PHP

Herança em PHP<?phpclass Veiculo{

public $marcha;public $quantidadeRodas;public function passarMarcha(){

// código}public function andar(){

// código}

}

?>

Page 146: Mini Curso de PHP

Herança em PHP<?php

class Carro extends Veiculo{

public function __construct(){

$this->quantidadeRodas = 4;}

}

$carro = new Carro();$carro->andar();?>

Page 147: Mini Curso de PHP

• Frameworks PHP– Definição– Frameworks mais usados– Vantagens– Desvantagens

• Framework CodeIgniter– Introdução– Padrão MVC– Exercícios práticos

Próximos tópicos

Page 148: Mini Curso de PHP

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.

Page 149: Mini Curso de PHP

Frameworks PHP mais usados1. Yii2. CodeIgniter3. CakePHP4. Zend5. Symfony6. PHPDevShell7. Prado8. Akelos9. ZooP10.QPHP

Fonte: http://www.phpframeworks.com/top-10-php-frameworksEm Maio de 2013

Page 150: Mini Curso de PHP

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

Page 151: Mini Curso de PHP

Frameworks: Desvantagens• Performance• Curva de aprendizado• Dependência

Page 152: Mini Curso de PHP

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

Page 153: Mini Curso de PHP

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

Page 154: Mini Curso de PHP

Padrão MVC

Page 155: Mini Curso de PHP

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).

Page 156: Mini Curso de PHP

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.

Page 157: Mini Curso de PHP

Padrão MVC• A visão (view) solicita do modelo a informação

que ela necessita para gerar uma representação de saída.

Page 158: Mini Curso de PHP

Exercícios Práticos• Hello World em CodeIgniter

Page 159: Mini Curso de PHP

Prof. Rodrigo Santa [email protected]

facebook.com/rodrigobsm

Contato