O documento apresenta uma introdução sobre manipulação de strings, arrays e datas no PHP, incluindo: 1) interpolação e impressão de caracteres em strings; 2) funções built-in para trabalhar com strings como strlen, substr e str_replace; 3) declaração, acesso e iteração de elementos em arrays; e 4) funções para contar elementos, buscar em arrays e converter array para string.
1. Manipulação de Strings,
Arrays e Datas no 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
2. Interpolação de strings
$local = 'mundo';
echo 'Alô $local';
echo "Alô $local";
// Alô $local
// Alô mundo
!
!
Impressão de caracteres especiais
!
echo 'Isto é um 'teste' ';
// Isto é um 'teste'
!
$a = 10;
echo "Valor de $a = "$a" ";
!2
// Valor de $a = "10"
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
3. Funções de strings
}
http://php.net/strings
}
~100 funções nativas!
!
Exemplo: http://php.net/strlen
}
!3
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
4. Função strlen
Tamanho de uma string
!
int strlen (str $str)
!
$a = "teste";
echo strlen($a);
!4
// 5
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
5. Função substr
Parte de uma string
!
str substr (str $str, int $start [, int $length] )
!
echo
echo
echo
echo
echo
!5
substr('abcdef',
substr('abcdef',
substr('abcdef',
substr('abcdef',
substr('abcdef',
1);
1, 3);
0, 4);
-2, 1);
-3);
//
//
//
//
//
bcdef
bcd
abcd
e
def
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
6. Função strpos
Busca de sub-string em uma string
!
int strpos (str $str, str $busca [, int $offset] )
!
$str
echo
echo
echo
!6
= 'teste';
strpos($str, 'es');
strpos($str, 'tes');
strpos($str, 'ab');
// 1
// 0
// false
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
7. Função str_replace
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);
$s2 = str_replace('a', 'A', 'abcabc');
!7
// olá mundo
// AbcAbc
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
8. Função number_format
Formatação de números
!
str number_format (float $number [, int $decimals [, str $dec_point, str
$thousands_sep]])
!
$num
echo
echo
echo
!8
= 1234.567;
number_format($num, 2);
number_format($num, 2, ',', '.');
number_format($num, 2, ',', '');
// 1,234.57
// 1.234,57
// 1234,57
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
9. Impressão / formatação de strings
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);
!9
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
10. “Limpeza” de strings
str rtrim (str $str [, str $charlist] )
str ltrim (str $str [, str $charlist] )
str trim (str $str [, str $charlist] )
!
echo trim(' abc
');
echo rtrim('abcxxxx', 'x');
!10
// "abc"
// "abc"
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
11. Caracteres maiúsculos / minúsculos
str strtolower (str $str)
str strtoupper (str $str)
str ucfirst (str $str)
!
echo strtolower('TESTE');
echo strtoupper('Teste');
echo ucfirst('olá mundo');
!11
// "teste"
// "TESTE"
// "Olá mundo"
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
12. Encadeamento de funções
!
$usuario = ' RCostA
';
$s1 = strtolower( trim($usuario) );
!
!
!
$email = 'usuario@site.com.br';
$s2 = substr($email, 0, strpos($email, '@') );
$s3 = substr($email, strpos($email, '@')+1 );
!12
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
13. Arrays no PHP
$vazio = array();
$a = array(1, 20, 30, 100, -4, 5);
$b = array('a', 'teste', 'Olá Mundo');
$a =
1 20 30 100 -4
0
1
2
3
4
índice do elemento
!13
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
5
5
14. 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;
1
$a =
!
0
20 30 100 -4
5
1
5
2
3
$idx = 2;
echo $a[$idx];
$soma = $a[$idx] + $a[$idx+1];
echo $a[$a[0]];
!14
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
4
15. Inserção de elementos
$a =
$a[]
$a[]
$a[]
array(1, 20, 30, 100, -4, 5);
= 8;
= 10;
= $a[0] + $a[1];
$a =
1 20 30 100 -4
0
!15
1
2
3
4
5
8 10 21
5
6
7
8
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
16. 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);
$a =
10 1 100 -1
10
$b =
a
1
20
3
39
teste Olá
100
5
!16
5
20
15
a
$c =
b
cod
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
17. 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;
$a =
10 1 100 -1
10
20
3
39
!
echo $b[1];
$frase = $b[5] . $b[100];
$b =
a
1
teste Olá
100
5
!
echo $c['b'];
echo $c['a'] + $c['cod'];
!17
$c =
5
20
15
a
b
cod
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
18. Declaração de Array
$a = array(1, 2, 3);
$b = array('joão', 'maria');
$multi = array($a, $b);
$multi =
!18
1
2
3
0
1
2
joão maria
0
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
1
19. 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];
2
3
0
!
1
1
2
joão maria
0
echo $multi[0];
echo $multi[0][1];
$frase = $multi[1][0] . ' e ' . $multi[1][1];
!19
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
1
20. Declaração de Array
$regs
1 =>
2 =>
8 =>
);
= array(
array('nome' => 'joão',
array('nome' => 'maria',
array('nome' => 'antonio',
'idade' => 15),
'idade' => 25),
'idade' => 35)
!
echo $regs[2]['nome'];
echo $regs[10]['idade'];
!20
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
21. 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
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
22. Função count
Quantidade de elementos em um Array
!
int count (array $arr)
!
$a =
echo
$b =
echo
$c =
echo
!22
array();
count($a);
array(1, 2, 3);
count($b);
array(array(1,2), array(3,4))
count($c);
// 0
// 3
// ?
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
23. Função in_array
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)) ...
!23
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
24. Função implode
Conversão de array para string
!
str implode (str $val, array $arr)
!
$a = array('a', 'b', 'c');
echo implode('@', $a);
echo implode('', $a);
!24
// "a@b@c"
// "abc"
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
25. Função explode
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);
!25
// array(10, 128, 0, 10)
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
26. Ordenação de elementos do Array
}
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)
!26
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
27. Datas no PHP
}
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
01/01/1970 00:00:00 GMT
...
!27
-2
-1
0
1
2
...
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
tempo
28. Datas no PHP
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
17/01/2011 13:00:00
!28
946.684.800
1.295.269.200
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
29. 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
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
30. Função time
Recuperar Timestamp atual do sistema
!
int time ()
!
echo time();
$t = time() + 60*60*24;
!30
// data e hora atual (timestamp)
// +24hrs
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
31. Função getdate
Recuperar informações sobre um Timestamp
!
array getdate ( [int $timestamp] )
!
!
Array
$arr = getdate();
(
[seconds]
[minutes]
[hours]
[mday]
[wday]
[mon]
[year]
[yday]
[weekday]
[month]
[0]
!
$ts = strtotime('06/17/2003 21:58:40');
$arr = getdate($ts);
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
)
!31
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
40
58
21
17
2
6
2003
167
Tuesday
June
1055901520
32. Função date
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');
Outros formatos em http://php.net/date
!32
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
33. Função checkdate
Valida uma data
Útil para checagem de data fornecida pelo usuário
!
bool checkdate (int $mon, int $day, int $year)
!
checkdate(1, 1, 2006);
checkdate(1, 40, 2006);
!33
// true
// false
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br
34. Função mktime
Calcular um Timestamp
!
int mktime (int $hour, int $min, int $sec, int $mon, int $day, int $year)
!
mktime(0, 0, 0, 12, 25, 2006);
mktime(10, 0, 0, 1, 1, 2007);
mktime(0, 0, 0, 15, 1, 2006);
mktime(0, 0, 0, 5, 0, 2006);
!34
//
//
//
//
25/12/2006
01/01/2007
01/03/2007
30/04/2006
00:00:00
10:00:00
00:00:00
00:00:00
Introdução ao Desenvolvimento de Sistemas Web com PHP - Programa de Verão IME-USP 2014
Prof. Mauricio Garcia Nascimento - mauricio@ime.usp.br - todos os direitos reservados
Prof. Daniel Arndt Alves – progdan@progdan.pro.br