You are on page 1of 34

Prof.

Mauricio Garcia Nascimento


Prof. Daniel Arndt Alves
Introduo ao Desenvolvimento de Sistemas Web com PHP
Programa de Vero IME-USP 2013
Manipulao de Strings,
Arrays e Datas no PHP
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Interpolao de strings
$local = 'mundo';
echo 'Al $local'; // Al $local
echo "Al $local"; // Al mundo
Impresso de caracteres especiais
echo 'Isto um \'teste\' '; // Isto um 'teste'
$a = 10;
echo "Valor de \$a = \"$a\" "; // Valor de $a = "10"
2
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Funes de strings
! http://php.net/strings
! ~100 funes nativas!
! Exemplo: http://php.net/strlen
3
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Tamanho de uma string
int strlen (str $str)
$a = "teste";
echo strlen($a); // 5
Funo strlen
4
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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
Funo substr
5
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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
Funo strpos
6
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Substituio 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
Funo str_replace
7
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Formatao de nmeros
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
Funo number_format
8
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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);
Impresso / formatao de strings
9
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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 maisculos / minsculos
11
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
$usuario = ' RCostA ';
$s1 = strtolower( trim($usuario) );
$email = 'usuario@site.com.br';
$s2 = substr($email, 0, strpos($email, '@') );
$s3 = substr($email, strpos($email, '@')+1 );
Encadeamento de funes
12
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Arrays no PHP
$vazio = array();
$a = array(1, 20, 30, 100, -4, 5);
$b = array('a', 'teste', 'Ol Mundo');
1 20 30 100 -4 5
0 1 2 3 4 5
$a =
13
ndice do elemento
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Acesso aos elementos do Array
Realizado atravs 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 5
0 1 2 3 4 5
$a =
14
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Insero de elementos
$a = array(1, 20, 30, 100, -4, 5);
$a[] = 8;
$a[] = 10;
$a[] = $a[0] + $a[1];
1 20 30 100 -4 5
0 1 2 3 4 5
$a =
8 10 21
6 7 8
15
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Declarao 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 -1
10 20 3 39
$a =
a teste Ol
1 100 5
$b =
5 20 15
a b cod
$c =
16
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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 -1
10 20 3 39
$a =
a teste Ol
1 100 5
$b =
5 20 15
a b cod
$c =
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Declarao de Array
$a = array(1, 2, 3);
$b = array('joo', 'maria');
$multi = array($a, $b);
18
maria joo
0 1
$multi =
1 2 3
0 1 2
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Acesso aos elementos do Array
$a = array(1, 2, 3);
$b = array('joo', '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
maria joo
0 1
1 2 3
0 1 2
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Declarao de Array
$regs = array(
1 => array('nome' => 'joo', 'idade' => 15),
2 => array('nome' => 'maria', 'idade' => 25),
8 => array('nome' => 'antonio', 'idade' => 35)
);
echo $regs[2]['nome'];
echo $regs[10]['idade'];
20
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Iterao de elementos de um Array
!
Lao de repetio: foreach
!
Exclusivo para Arrays
!
Executa bloco do lao para cada elemento do Array
!
A cada repetio, 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
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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); // ?
Funo count
22
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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('joo', $a)) ...
Funo in_array
23
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Converso 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"
Funo implode
24
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Converso 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)
Funo explode
25
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
!
Por elemento (reconstri 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)
Ordenao de elementos do Array
26
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
! No representada por um tipo de dado especfico
!
Nmero 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
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Diferena 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
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Recuperar Timestamp atual do sistema
int time ()
echo time(); // data e hora atual (timestamp)
$t = time() + 60*60*24; // +24hrs
Funo time
30
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Recuperar informaes 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
)
Funo getdate
31
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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');
Funo date
Outros formatos em http://php.net/date
32
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
Valida uma data
til para checagem de data fornecida pelo usurio
bool checkdate (int $mon, int $day, int $year)
checkdate(1, 1, 2006); // true
checkdate(1, 40, 2006); // false
Funo checkdate
33
Introduo ao Desenvolvimento de Sistemas Web com PHP - Programa de Vero IME-USP 2013
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves daniel.alves@mackenzie.br
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
Funo mktime
34

You might also like