strings, arrays e manipulação datas em php

34
Prof. Mauricio Garcia Nascimento Prof. Daniel Arndt Alves Introdução ao Desenvolvimento de Sistemas Web com PHP Programa de Verão IME-USP 2014 Manipulação de Strings, Arrays e Datas no PHP

Upload: daniel-arndt-alves

Post on 22-May-2015

340 views

Category:

Education


0 download

DESCRIPTION

Strings, Arrays e Manipulação Datas em PHP

TRANSCRIPT

Page 1: Strings, Arrays e Manipulação Datas em PHP

Prof. Mauricio Garcia Nascimento Prof. Daniel Arndt Alves

Introdução ao Desenvolvimento de Sistemas Web com PHP Programa de Verão IME-USP 2014

Manipulação de Strings,Arrays e Datas no PHP

Page 2: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Interpolação de strings$local = 'mundo'; echo 'Alô $local'; // Alô $local echo "Alô $local"; // Alô mundo !!Impressão de caracteres especiais !echo 'Isto é um \'teste\' '; // Isto é um 'teste' !$a = 10; echo "Valor de \$a = \"$a\" "; // Valor de $a = "10"

!2

Page 3: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Funções de strings

} http://php.net/strings } ~100 funções nativas! !

} Exemplo: http://php.net/strlen

!3

Page 4: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Tamanho de uma string !int strlen (str $str) !$a = "teste"; echo strlen($a); // 5

Função strlen

!4

Page 5: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Parte de uma string !str substr (str $str, int $start [, int $length] ) !echo substr('abcdef', 1); // bcdef echo substr('abcdef', 1, 3); // bcd echo substr('abcdef', 0, 4); // abcd echo substr('abcdef', -2, 1); // e echo substr('abcdef', -3); // def

Função substr

!5

Page 6: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Busca de sub-string em uma string !int strpos (str $str, str $busca [, int $offset] ) !$str = 'teste'; echo strpos($str, 'es'); // 1 echo strpos($str, 'tes'); // 0 echo strpos($str, 'ab'); // false

Função strpos

!6

Page 7: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Substituição de sub-strings em uma string !mix str_replace (mix $search, mix $replace, mix $subject) !$str = 'Olá #local#'; $s1 = str_replace('#local#', 'mundo', $str); // olá mundo $s2 = str_replace('a', 'A', 'abcabc'); // AbcAbc

Função str_replace

!7

Page 8: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Formatação de números !str number_format (float $number [, int $decimals [, str $dec_point, str

$thousands_sep]]) !$num = 1234.567; echo number_format($num, 2); // 1,234.57 echo number_format($num, 2, ',', '.'); // 1.234,57 echo number_format($num, 2, ',', ''); // 1234,57

Função number_format

!8

Page 9: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

echo $str printf (str $str [, mix $args, ...] ) str sprintf (str $str [, mix $args, ...] ) var_dump ($str) !echo 'teste'; printf('o valor da %s é %d', 'soma', 100); $txt = sprintf('o valor da %s é %d', 'soma', 100);

Impressão / formatação de strings

!9

Page 10: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

str rtrim (str $str [, str $charlist] ) str ltrim (str $str [, str $charlist] ) str trim (str $str [, str $charlist] ) !echo trim(' abc '); // "abc" echo rtrim('abcxxxx', 'x'); // "abc"

“Limpeza” de strings

!10

Page 11: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

str strtolower (str $str) str strtoupper (str $str) str ucfirst (str $str) !echo strtolower('TESTE'); // "teste" echo strtoupper('Teste'); // "TESTE" echo ucfirst('olá mundo'); // "Olá mundo"

Caracteres maiúsculos / minúsculos

!11

Page 12: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

!$usuario = ' RCostA '; $s1 = strtolower( trim($usuario) ); !!!$email = '[email protected]'; $s2 = substr($email, 0, strpos($email, '@') ); $s3 = substr($email, strpos($email, '@')+1 );

Encadeamento de funções

!12

Page 13: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Arrays no PHP$vazio = array(); $a = array(1, 20, 30, 100, -4, 5); $b = array('a', 'teste', 'Olá Mundo');

1 20 30 100 -4 50 1 2 3 4 5

$a =

!13

índice do elemento

Page 14: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Acesso aos elementos do Array

Realizado através do seu [índice] !$a = array(1, 20, 30, 100, -4, 5); echo $a[0]; echo $a[4]; $soma = $a[1] + 20; $a[3]++; $a[5] += 10; !$idx = 2; echo $a[$idx]; $soma = $a[$idx] + $a[$idx+1]; echo $a[$a[0]];

1 20 30 100 -4 50 1 2 3 4 5

$a =

!14

Page 15: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Inserção de elementos$a = array(1, 20, 30, 100, -4, 5); $a[] = 8; $a[] = 10; $a[] = $a[0] + $a[1];

1 20 30 100 -4 50 1 2 3 4 5

$a = 8 10 216 7 8

!15

Page 16: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Declaração de Array$a = array(10=>10, 20=>1, 3=>100, 39=>-1); $b = array(1=>'a', 100=>'teste', 5=>'Olá'); $c = array('a'=>5, 'b'=>20, 'cod'=>15);

10 1 100 -110 20 3 39

$a =

a teste Olá1 100 5

$b =

5 20 15a b cod

$c =

!16

Page 17: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Acesso aos elementos do Array$a = array(10=>10, 20=>1, 3=>100, 39=>-1); $b = array(1=>'a', 100=>'teste', 5=>'Olá'); $c = array('a'=>5, 'b'=>20, 'cod'=>15); !echo $a[39]; $idx = 3; echo $a[$idx] + 20; !echo $b[1]; $frase = $b[5] . $b[100]; !echo $c['b']; echo $c['a'] + $c['cod'];

!17

10 1 100 -110 20 3 39

$a =

a teste Olá1 100 5

$b =

5 20 15a b cod

$c =

Page 18: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Declaração de Array$a = array(1, 2, 3); $b = array('joão', 'maria'); $multi = array($a, $b);

!18

mariajoão0 1

$multi = 1 2 30 1 2

Page 19: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Acesso aos elementos do Array$a = array(1, 2, 3); $b = array('joão', 'maria'); $multi = array($a, $b); !echo $a[0]; echo $b[1]; !echo $multi[0]; echo $multi[0][1]; $frase = $multi[1][0] . ' e ' . $multi[1][1];

!19

mariajoão0 1

1 2 30 1 2

Page 20: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Declaração de Array$regs = array( 1 => array('nome' => 'joão', 'idade' => 15), 2 => array('nome' => 'maria', 'idade' => 25), 8 => array('nome' => 'antonio', 'idade' => 35) ); !echo $regs[2]['nome']; echo $regs[10]['idade'];

!20

Page 21: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Iteração de elementos de um Array

} Laço de repetição: foreach } Exclusivo para Arrays } Executa bloco do laço para cada elemento do Array } A cada repetição, recupera elemento atual do Array

!!$regs = array(10, 20, -5, 100); foreach($regs as $reg) { echo $reg; } !$regs = array('a'=>10, 'b'=>20, 'c'=>15); foreach($regs as $k => $reg) { echo $k . ':' . $reg; }

!21

Page 22: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Quantidade de elementos em um Array !int count (array $arr) !$a = array(); echo count($a); // 0 $b = array(1, 2, 3); echo count($b); // 3 $c = array(array(1,2), array(3,4)) echo count($c); // ?

Função count

!22

Page 23: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Busca de elemento no array !bool in_array (mix $val, array $arr) !$a = array('a' => 1, 'b' => 3, 'cod' => 10); echo in_array(20, $a); !if (in_array('joão', $a)) ...

Função in_array

!23

Page 24: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Conversão de array para string !str implode (str $val, array $arr) !$a = array('a', 'b', 'c'); echo implode('@', $a); // "a@b@c" echo implode('', $a); // "abc"

Função implode

!24

Page 25: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Conversão de string para array !array explode (str $val, str $txt) !$a = "10-20-30-40-50"; $b = explode('-', $a); // array(10, 20, 30, 40, 50) !$ip = "10.128.0.10"; $b = explode('.', $ip); // array(10, 128, 0, 10)

Função explode

!25

Page 26: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

} Por elemento (reconstrói ref. índice) sort (array $arr) rsort (array $arr)

!} Por elemento (preserva ref. índice)

asort (array $arr) arsort (array $arr)

!} Por índice, (preserva ref. índice)

ksort (array $arr) krsort (array $arr)

Ordenação de elementos do Array

!26

Page 27: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

} Não é representada por um tipo de dado específico } Número inteiro

} Forma de contagem do tempo } 1 unidade = 1 segundo } Unix Timestamp

} Marco zero em 01/01/1970 00:00:00 GMT } Pode ser representado por valores negativos

0 1 2 ...-1-2...

01/01/1970 00:00:00 GMT

tempo

!27

Datas no PHP

Page 28: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Data Unix TimeStamp

01/01/1970 00:00:01 1

01/01/1970 00:01:00 60

01/01/1970 01:00:00 3600

31/12/1969 00:00:00 -86.400 (24*3600)

01/01/2000 00:00:00 946.684.800

17/01/2011 13:00:00 1.295.269.200

!28

Datas no PHP

Page 29: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Diferença entre datas//segundos entre as 2 datas $data_fim - $data_inicio !//horas entre as 2 datas ($data_fim - $data_inicio) / 3600 !/* "17/09/2007 20:15:00 - 01/01/2007 00:00:00" 1.190.060.100 – 1.167.609.600 = 22.450.500 segs. 22.450.500 / 3.600 = 6.236 hrs. */

!29

Page 30: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Recuperar Timestamp atual do sistema !int time () !echo time(); // data e hora atual (timestamp) $t = time() + 60*60*24; // +24hrs

Função time

!30

Page 31: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Recuperar informações sobre um Timestamp !array getdate ( [int $timestamp] ) !!$arr = getdate(); !$ts = strtotime('06/17/2003 21:58:40'); $arr = getdate($ts);

Array ( [seconds] => 40 [minutes] => 58 [hours] => 21 [mday] => 17 [wday] => 2 [mon] => 6 [year] => 2003 [yday] => 167 [weekday] => Tuesday [month] => June [0] => 1055901520 )

Função getdate

!31

Page 32: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Formatar um Timestamp para um formato textual !str date (str $formato [, int $timestamp] ) !!// 18/09/2007 20:50:02 echo date('d/m/Y H:i:s');

Função date

Outros formatos em http://php.net/date

!32

Page 33: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Valida uma data Útil para checagem de data fornecida pelo usuário !bool checkdate (int $mon, int $day, int $year) !checkdate(1, 1, 2006); // true checkdate(1, 40, 2006); // false

Função checkdate

!33

Page 34: Strings, Arrays e Manipulação Datas em PHP

Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014 Prof. Mauricio Garcia Nascimento - [email protected] - todos os direitos reservados

Prof. Daniel Arndt Alves – [email protected]

Calcular um Timestamp !int mktime (int $hour, int $min, int $sec, int $mon, int $day, int $year) !mktime(0, 0, 0, 12, 25, 2006); // 25/12/2006 00:00:00 mktime(10, 0, 0, 1, 1, 2007); // 01/01/2007 10:00:00 mktime(0, 0, 0, 15, 1, 2006); // 01/03/2007 00:00:00 mktime(0, 0, 0, 5, 0, 2006); // 30/04/2006 00:00:00

Função mktime

!34