Aula 02 - Curso PHP e MySQL

55
[email protected] Faculdade Marista 2010.2 Aula - 02

Transcript of Aula 02 - Curso PHP e MySQL

Page 1: Aula 02 - Curso PHP e MySQL

[email protected]

Faculdade Marista

2010.2

Aula - 02

Page 2: Aula 02 - Curso PHP e MySQL

O que veremos hoje?

1. Strings 2. Arrays3. Formulários

Page 3: Aula 02 - Curso PHP e MySQL

String

Em diversas situações precisaremos tratar uma String seja:

Dividindo;

Realizando parsers;

Substituindo valores;

Criptografando;

Formatando;

Etc..

O PHP fornece dezenas de funções relacionadas a String, é importante

conhecê-las para tornar mais práticos e simples os códigos-fontes do

seu projeto.

Page 4: Aula 02 - Curso PHP e MySQL

Obtendo o tamanho de uma String

O comando strlen permite ao desenvolvedor descobrir qual o

tamanho de uma string passada por parâmetro.

(int) strlen(<string>);

Retorno: o tamanho da string, caso seja vazia

retornará 0.

Obs. Dentre os vários usos podemos citar a validação se o tamanho da

string está de acordo com os parâmetros de armazenamentos definidos

em suas tabelas no MySQL.

Page 5: Aula 02 - Curso PHP e MySQL

Exemplo do strlen

<?php

$tamanho = strlen(‘Brasil’);

echo ($tamanho. ‘<BR>’);

// Resultado: 6

echo (strlen(‘ ’).’<BR>’);

// Resultado: 0

?>

Page 6: Aula 02 - Curso PHP e MySQL

Localizar uma substring dentro de uma string(strpos,strchr e strrchr)

O comando strpos retorna a posição numérica da primeira

ocorrência da substring que está sendo procurada na string principal, ou

zero em caso de não haver resultados para a busca realizada.

(int) strpos(<string>,<busca>[,<posicao_de_inicio_de busca>]);

Page 7: Aula 02 - Curso PHP e MySQL

Exemplo do strpos

<?php

echo(strpos(‘Brasil Pentacampeao’, ‘a’). ‘<BR>’);

//Resultado: 2

echo(strpos(‘Brasil Pentacampeao’, ‘a’, 3). ‘<BR>’);

//Resultado: 11

//exibindo todas ocorrências

$offset = 0;

while(($offset = strpos(‘Brasil Pentacampeao’, ‘a’, $offset + 1)) != 0){

echo($offset. ‘,’);

}

//Resultado: 2, 11, 13, 17

?>

Page 8: Aula 02 - Curso PHP e MySQL

strchr e strrch

Os comandos strchr e strrchr localizam a primeira e a última

ocorrência da busca respectivamente.

(string) strch(<string>,<busca>);

(string) strrch(<string>,<busca>);

Retorno: a substring formada pela posição de localização da busca

até o final da string principal. Caso não haja resultados, será

retornado FALSE.

Page 9: Aula 02 - Curso PHP e MySQL

Exemplo de strchr e strrch

<?php

echo(strchr(‘Brasil Pentacampeao’, ‘a’). ‘<BR>’);

//Resultado: asil Pentacapeao

echo(strrchr(‘Brasil Pentacampeao’, ‘a’). ‘<BR>’);

//Resultado: ao

echo(strrchr(‘Brasil Pentacampeao’, ‘y’). ‘<BR>’);

//Resultado:

?>

Page 10: Aula 02 - Curso PHP e MySQL

Substituição de substring com str_replace

O comando str_replace substitui todas as ocorrências de uma

busca em string pelo valor informado.

(mixed) str_replace(<busca>,<substituicao>,<string_original>);

Retorno: a nova string com suas alterações.

Page 11: Aula 02 - Curso PHP e MySQL

Exemplo de str_replace

<?php

echo(str_replace(‘penta’,’hexa’, ‘Brasil penta’). ‘<BR>’);

// Resultado: Brasil hexa

echo(str_replace(‘USUARIO’,’Neto’, ‘Bem vindo USUARIO ao site!’). ‘<BR>’);

// Resultado: Bem vindo Neto ao site!

?>

Page 12: Aula 02 - Curso PHP e MySQL

Caixa alta e baixa com stroupper, strolower e ucfirt

A formatação de strings para caixa alta e caixa baixa pode ser realizada

por meio dos comandos stroupper e strolower,

respectivamente. Existe também o ucfirst que torna maiúscula a

primeira letra da string.

(string) stroupper(<string>);

(string) strlower(<string>);

(string) ucfirst(<string>);

Retorno: a nova string com suas alterações.

Page 13: Aula 02 - Curso PHP e MySQL

Exemplo de stroupper, strolower e ucfirst<?php

echo(strlower(‘jose NETO’). ‘<BR>’);

//Resultado: jose neto

echo(stroupper(‘jose NETO’).’<BR>’);

//Resultado: JOSE NETO

echo(ucfirst(‘andre MILANI’).’<BR>’);

//Resultado: Andre MILANI

?>

Page 14: Aula 02 - Curso PHP e MySQL

Inverter string com strrev

A função strrev, inverte a string passada como parâmetro.

(string) strrev(<string>);

Retorno: a nova string com suas invertida.

Exemplo de strrev

<?php

echo(strrev(‘Brasil’));

Resultado: lisarB

?>

Page 15: Aula 02 - Curso PHP e MySQL

Criptografia de string com crypt, sha1 e md5

As funções crypt, sha1 e md5, são utilizadas para gerar os

códigos hash das string passadas por parâmetro.

Este recurso tem diversas aplicações, entre elas o armazenamento de

senha em tabelas do banco de dados.

O código hash é gerado a partir de algoritmos conhecidos como one-way(única

direção), pois seus resultados não são reversíveis a ponto de se chegar a string

original.”

(string) crypt(<string>);

(string) sha1(<string>);

(string) md5(<string>);

Retorno: código hash gerado a partir da string informada.

ATENÇÃO MUITO USADO!

Page 16: Aula 02 - Curso PHP e MySQL

Exemplo de crypt, sha1 e md5

<?PHP

$senhaCadastrada = 'minhaSenhaSeguraDeInternet';

echo(crypt($senhaCadastrada).'<BR>');

// Resultado: $1$eRl.t3cN$87toVnnbrp52Qo5N5LrH50

echo(sha1($senhaCadastrada).'<BR>');

// Resultado: bb8b564b31d1c4a736dbbca0fd3512a5246f3cd8

Page 17: Aula 02 - Curso PHP e MySQL

Exemplo de crypt, sha1 e md5echo(md5($senhaCadastrada).'<BR>');

// Resultado: 852b340fd8be477f0418cdcf32450fa7

// Valor que deve ser armazenado no banco de dados

$valorArmazenadoNoBanco = crypt($senhaCadastrada);

// Autenticando um usuario

$senhaInformadaNoLogin = 'minhaSenhaSeguraDeInternet';

if(crypt($senhaInformadaNoLogin) == $valorArmazenadoNoBanco)

{

echo('Sucesso!');

}

?>

Page 18: Aula 02 - Curso PHP e MySQL

Transformar string em arrays com explode e implode

O explode, separa a string com base em um caractere divisor, que pode

ser qualquer caracter.

(array) explode(<divisor>,<string>[, numero_de_divisoes_maximo]);

Retorno: array com cada parte da string em uma posição.

Page 19: Aula 02 - Curso PHP e MySQL

Exemplo de explode

<?PHP

$resultado = explode(' ', 'Brasil penta campeao');

echo $resultado[0].'<BR>'; // Resultado: Brasil

echo $resultado[1].'<BR>'; // Resultado: penta

$resultado = explode(' ', 'Brasil penta campeao', 2);

echo $resultado[0].'<BR>'; // Resultado: Brasil

echo $resultado[1].'<BR>'; // Resultado: penta campeao

?>

Page 20: Aula 02 - Curso PHP e MySQL

Transformar string em arrays com explode e implode

O implode, monta uma string com base nas posições existentes em um

array. Para organizar a string, é possível indicar qual o caractere de separação

entra as partes deve ser utilizado na string final

(array) implode(<divisor>,<string>);

Retorno: string com as partes do array.

Page 21: Aula 02 - Curso PHP e MySQL

Exemplo de implode

<?PHP

$meuArray = array('Alpha', 'Beta', 'Gama');

$minhaString = implode(' - ', $meuArray);

echo($minhaString);

// Resultado: Alpha - Beta - Gama

?>

Page 22: Aula 02 - Curso PHP e MySQL

Remover espaços em branco com trim, ltrim e rtrim

Os comandos trim, ltrim e rtrim removem o excesso de espaços em

branco em diferentes partes da string passada por parâmetro.

(string) trim(<string>);

(string) ltrim(<string>);

(string) rtrim(<string>);

Retorno: string alterada.

Page 23: Aula 02 - Curso PHP e MySQL

Exemplo de trim, ltrim e rtim

<?PHP

echo(trim(' Brasil penta campeao ').'<BR>');

// Resultado: _Brasil penta campeao_

echo(ltrim(' Brasil penta campeao ').'<BR>');

// Resultado: _Brasil penta campeao _

echo(rtrim(' Brasil penta campeao ').'<BR>');

// Resultado: _ Brasil penta campeao_

?>

Page 24: Aula 02 - Curso PHP e MySQL

ARRAY

Page 25: Aula 02 - Curso PHP e MySQL

Imprimindo um array

O comando print_r é utilizado para exibir todo o conteúdo do array

passado como parâmetro a essa função.

O formato da impressão do array pelo comando print_r é de exibir sempre a

chave e o valor correspondente de cada elemento do array.

(mixed) print_r(<array>);

Retorno: imprime no html as chaves e valores contidos no array.

Page 26: Aula 02 - Curso PHP e MySQL

Exemplo imprimindo um array

<?PHP

$meuArray = array('alpha' => 'valor1', 2, 'tres');

$meuArray[5] = 'Novo valor';

print_r($meuArray);

// Resultado:

// Array ( [alpha] => valor1 [0] => 2 [1] => tres [5] => Novo valor )

?>

Page 27: Aula 02 - Curso PHP e MySQL

Arrays Multidimensionais

<?PHP

$arrayAlpha = array('a', 'b', 'c');

$arrayBeta = array('d', 'e', 'f');

$arrayMulti = array($arrayAlpha, $arrayBeta);

echo($arrayMulti[0][2].'<BR>'); // Resultado: c

echo($arrayMulti[1][2].'<BR>'); // Resultado: f

?>

Page 28: Aula 02 - Curso PHP e MySQL

Removendo elementos do array

O comando unset destrói a posição do array em questão ou variável

informada.

(void) unset(<variavel_ou_posicao_do_array>);

Retorno: void.

Page 29: Aula 02 - Curso PHP e MySQL

Exemplo do unset

<?PHP

$meuArray = array('a', 'b', 'c', 'd', 'e');

unset($meuArray[3]);

print_r($meuArray);

// Resultado:

// Array ( [0] => a [1] => b [2] => c [4] => e )

?>

Page 30: Aula 02 - Curso PHP e MySQL

Obtendo número de elementos do array

É possível obter o número de elementos existentes em um array por meio das

funções count e sizeof.

(int) count(<variavel>);

(int) sizeof(<variavel>);

Retorno: número de elementos da variável ou array.

Page 31: Aula 02 - Curso PHP e MySQL

Exemplo do count e sizeof

<?PHP

$meuArray = array('a', 'b', 'c', 'd', 'e');

echo (count($meuArray).'<BR>'); // Resultado: 5

unset($meuArray[0]);

echo (sizeof($meuArray).'<BR>'); // Resultado: 4

?>

Page 32: Aula 02 - Curso PHP e MySQL

Navegação nos arrays

(mixed) current(<array>)

(mixed) key(<array>)

(mixed) prev(<array>)

(mixed) next(<array>)

(mixed) end(<array>)

(mixed) reset(<array>)

Page 33: Aula 02 - Curso PHP e MySQL

Retorno Descrição

current Retorna o elemento da posição atual do array.

key Retorna a chave da posição atual do array.

next Avança o índice do array para a próxima posição e retorna o valor do elemento na posição em questão.

prev Retrocede o índice do array para a posição anterior e retorna o valor do elemento na posição em questão.

end Avança o índice do array para a última posição e retorna o valor do elemento na posição em questão.

reset Retrocede o índice do array para a primeira posição e retorna o valor do elemento na posicão em questão

Page 34: Aula 02 - Curso PHP e MySQL

Exemplo navegação em arrays

<?PHP

$meuArray = array('a', 'b', 'c', 'd', 'e', 'f', 'g');

foreach($meuArray as $valor) {

echo($valor." ");

}

// Resultado: a b c d e f g

end($meuArray);

prev($meuArray);

prev($meuArray);

prev($meuArray);

next($meuArray);

echo(key($meuArray)); // Resultado: 4

echo(current($meuArray)); // Resultado: e

?>

Page 35: Aula 02 - Curso PHP e MySQL

array_push e array_pop

o array_push insere um valor no final de um arrray e o array_popremove o último elemento de um array.

(int) array_push(<array>,<elemento>);

(mixed) array_pop(<variavel>);

Retorno Descrição

array_push Retorna o novo número de elementos do array.

array_pop Retornao último elemento do array, eliminando-o do array.

Page 36: Aula 02 - Curso PHP e MySQL

Exemplo array_push e array_pop

<?PHP

$minhaPilha = array();

array_push($minhaPilha, 'a');

array_push($minhaPilha, 'b');

echo(array_push($minhaPilha, 'c').'<BR>'); // Resultado: 3

echo(array_pop($minhaPilha).'<BR>'); // Resultado: c

print_r($minhaPilha); // Resultado: Array ( [0] => a [1] => b )

?>

Page 37: Aula 02 - Curso PHP e MySQL

Enviar todos os elementos de um array para uma função com array_map

Em determinados momentos pode ser necessário que todos os elementos de

um array sejam enviados para uma função específica.

A função array_map recebe um array como parâmetro e uma função e

automatiza o envio de todos os elementos do array para tal instrução.

(array) array_map(<nome_da_funcao>,<array>);

Retorno: um novo array com os retornos da função para cada posição do

array enviado como parâmetro.

Page 38: Aula 02 - Curso PHP e MySQL

Exemplo array_map

<?PHP

function calcularDobro($numero) {

return $numero * 2;

}

$meuArray = array(1, 2, 3);

$arrayAlterado = array_map('calcularDobro', $meuArray);

print_r($arrayAlterado);

// Resultado: Array ( [0] => 2 [1] => 4 [2] => 6 )

?>

Page 39: Aula 02 - Curso PHP e MySQL

Achar uma chave com array_key e array_key_exists

O comando array_keys retorna um novo array, em que cada posição é

uma chave disponível no array mencionado no comando.

Pode ser útil em situações nas quais não sabemos quais os elementos e quais

chaves existem em um array.

(array) array_keys(<array>);

Page 40: Aula 02 - Curso PHP e MySQL

Achar uma chave com array_key e array_key_exists

Caso o você tenha uma determinada chave e precise descobrir se um array

em particular contém um registro atribuído a essa chave, é possivel utilizar a

função array_key_exists

(bool) array_key_exists(<chave>,<array>);

Page 41: Aula 02 - Curso PHP e MySQL

Exemplo com array_key e array_key_exists

<?PHP

$meuArray = array('alfa' => 0, 1 => 1, 'dois' => 2);

print_r(array_keys($meuArray));

// Resultado: Array ( [0] => alfa [1] => 1 [2] => dois )

echo(array_key_exists('dois', $meuArray));

// Resultado: 1

?>

Page 42: Aula 02 - Curso PHP e MySQL

Localizar valores em arrays com array_search e in_array

Para saber se um determinado valor está contido em um array utilie o

array_search

(mixed) array_search(<elemento>,<array>);

Retorno: retorna a chave referente ao valor procurado, no caso de

encontrá-lo se não retorna FALSE.

Page 43: Aula 02 - Curso PHP e MySQL

Exemplo array_search e in_array

<?PHP

$meuArray = array('aaa', 'bb', 'Chave do c' => 'c', 'ddd');

echo(array_search('aaa', $meuArray).'<BR>'); // Resultado: 0

echo(array_search('c', $meuArray).'<BR>'); // Resultado: Chave do c

echo(array_search('nenhum', $meuArray).'<BR>'); // Resultado: <vazio>

?>

Obs. Similar a função array_search, o comando in_array retorna TRUE

caso encontre e FALSE caso não.

Page 44: Aula 02 - Curso PHP e MySQL

Misturar e ordenar arrays

É possível ordenar arrays por ordem crescente(sort) e decrescente (rsort),

bem como podemos embaralhá-lo(shuffle).

(bool) sort(<array>);

(bool) rsort(<array>);

(bool) shuffle(<array>);

Page 45: Aula 02 - Curso PHP e MySQL

Exemplo misturar e ordenar arrays

<?PHP

$meuArray = array('a', 1, 'b', 'c', 2, '0', '4');

sort($meuArray);

print_r($meuArray);

// Resultado:

// Array ( [0] => 0 [1] => 4 [2] => a [3] => b [4] => c [5] => 1 [6] => 2 )

echo('<BR>');

rsort($meuArray);

print_r($meuArray);

// Resultado:

// Array ( [0] => 2 [1] => 1 [2] => c [3] => b [4] => a [5] => 4 [6] => 0 )

echo('<BR>');

shuffle($meuArray);

print_r($meuArray);

// Resultado:

// Array ( [0] => c [1] => 0 [2] => 4 [3] => a [4] => 1 [5] => 2 [6] => b )

?>

Page 46: Aula 02 - Curso PHP e MySQL

Formulários

Page 47: Aula 02 - Curso PHP e MySQL

$_POST e $_GET

As supervariáves $_POST e $_GET são arrays que representam os dados

enviados ao servidor pelo método post e get. Estas variáveis estão diponíveis

em todas as partes em que forem requisitadas.

$_REQUEST

A supervariável $REQUEST reúne o conteúdo das supervariáveis $_POST,

$_GET e $COOKIES. A vantagem é que, independete do método de envio dos

dados de um formulário, é possível acessar o campo por seu nome.

Page 48: Aula 02 - Curso PHP e MySQL

VamosPRATICAR?

Page 49: Aula 02 - Curso PHP e MySQL

Fomulário

<HTML>

<HEAD>

<TITLE>EXEMPLO - Formul·rios</TITLE>

</HEAD>

<BODY>

<FORM method="POST" action="?action=save" name="meuForm">

Nome: <INPUT type=TEXT name=CAMPO_NOME>

<BR>Idade: <INPUT type=TEXT name=CAMPO_IDADE>

<BR>E-mail: <INPUT type=TEXT name=CAMPO_EMAIL>

<BR>Sexo: <INPUT type=RADIO name=CAMPO_SEXO value="M">Masculino

<INPUT type=RADIO name=CAMPO_SEXO value="F">Feminino

<BR>Curso: <SELECT name=CAMPO_CURSO>

<OPTION selected>Selecione...</OPTION>

<OPTION>CiÍncia da ComputaÁ„o</OPTION>

<OPTION>Bacharelado em Inform·tica</OPTION>

<OPTION>Engenharia da ComputaÁ„o</OPTION>

</SELECT>

<BR>Conhecimentos:

<INPUT type=CHECKBOX name=CAMPO_CONHECIMENTOS[] value="Word">Microsoft Word

<INPUT type=CHECKBOX name=CAMPO_CONHECIMENTOS[] value="HTML">HTML

<INPUT type=CHECKBOX name=CAMPO_CONHECIMENTOS[] value="JS">JavaScript

<INPUT type=CHECKBOX name=CAMPO_CONHECIMENTOS[] value="PHP">PHP

<BR>

<INPUT type=RESET value="Limpar">

<INPUT type=SUBMIT value="Enviar">

</FORM>

</BODY>

</HTML>

Page 50: Aula 02 - Curso PHP e MySQL

Validação de texto

$tamanho_nome = strlen($_POST["CAMPO_NOME"]);

if($tamanho_nome < 5 || $tamanho_nome > 64)

{

echo("O campo 'Nome' deve ter entre 5 e 64

caracteres.".$tamanho_nome);

$formValid = FALSE;

}

Page 51: Aula 02 - Curso PHP e MySQL

Validação número

$idade = (int)$_POST["CAMPO_IDADE"];

if(is_NaN($idade) || $idade < 4 || $idade > 120)

{

echo("O campo 'Idade' deve ter preenchido corretamente.");

$formValid = FALSE;

}

Page 52: Aula 02 - Curso PHP e MySQL

Validação email

$email = $_POST["CAMPO_EMAIL"];

$regex = "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-

9_]+)*[.][A-z]{2,4}$/";

if(!preg_match($regex, $email))

{

echo("O campo 'E-mail' deve ter preenchido corretamente.");

$formValid = FALSE;

}

Page 53: Aula 02 - Curso PHP e MySQL

Validação de radio

$sexo = $_POST["CAMPO_SEXO"];

if($sexo != "M" && $sexo != "F")

{

echo("O campo 'Sexo' deve ser preenchido.");

$formValid = FALSE;

}

Page 54: Aula 02 - Curso PHP e MySQL

Validação lista de seleção

$curso = $_POST["CAMPO_CURSO"];

if($curso == "" || $curso == "Selecione...")

{

echo("O campo 'Curso' deve ser preenchido.");

$formValid = FALSE;

}

Page 55: Aula 02 - Curso PHP e MySQL

Cabousse…