SlideShare a Scribd company logo
1 of 72
Programação para WEB
Regis Pires Magalhães
regispiresmag@gmail.com
PHP: Primeiros
Passos
“Olá, Mundo” em PHP
<html>
<head>
<title>Exemplo</title>
</head>
<body>
<?php
echo "Olá, Mundo!";
?>
</body>
</html>
Informações sobre o PHP
<?php
phpinfo();
?>
Delimitadores de Código
O código deve estar contido entre os
delimitadores:
<?php
// ...
?>
Comentários
De linha:
De bloco:
<?php
// echo "a";
# echo "a";
?>
<?php
/* echo "a";
echo "b"; */
?>
Comandos de Saída
echo – Exibe uma ou mais Strings
void echo ( string $arg1 [, string $...] )
Sem parênteses: pode ter vários parâmetros
Com parênteses: somente um parâmetro
<?php
echo 'a', 'b', 'c', '<br/>';
echo('a<br/>');
?>
Comandos de Saída
print – Mostra uma string
int print ( string $arg )
Só permite um único parâmetro
Com ou sem parênteses
Retorna sempre 1
<?php
print 'a<br/>';
print('a<br/>');
?>
Comandos de saída
Concatenação de strings
<?php
echo 'a', 'b', 'c', '<br/>';
echo 'a' . 'b' . 'c' . '<br/>';
echo('a' . 'b' . 'c' . '<br/>');
print 'a' . 'b' . 'c' . '<br/>';
print('a' . 'b' . 'c' . '<br/>');
?>
Variáveis
Sempre precedidas de $
Case sensitive: $nome != $Nome
<?php
$nome = "João";
$sobrenome = "da Silva";
echo 'Sobrenome: $sobrenome - Nome: $nome<br/>';
echo 'Sobrenome: ' . $sobrenome . ' - Nome: ' . $nome . '<br/>';
echo "Sobrenome: $sobrenome - Nome: $nome<br/>";
echo "Nome Completo: $nome $sobrenome<br/>";
?>
Variáveis
<?php
$a = 10;
$A = 20;
echo "O valor de $a é $a e o de $A é $A";
?>
Variáveis
<?php
$a = 5;
$b = $a;
$b = 10;
echo $a; // ???
echo $b; // ???
?>
Variáveis
<?php
$a = 5;
$b = &$a;
$b = 10;
echo $a; // ???
echo $b; // ???
?>
Variáveis
<html>
<head>
<title>CEFET-PI PHB</title>
</head>
<body>
<?php
$data_de_hoje = date ("d/m/Y H:i:s",time());
?>
<p>Data e hora no servidor:
<?php echo $data_de_hoje; ?></p>
</body>
</html>
Variáveis
<html>
<head>
<title>CEFET-PI PHB</title>
</head>
<body>
<?php
$base = 10;
$altura = 20;
$area = $base * $altura;
echo "Base: $base - Altura: $altura - Área: $area";
?>
</body>
</html>
Variáveis
<?php
$a = 'PHP';
echo $a;
unset($a);
echo $a;
?>
unset – destrói a variável especificada.
Valor e Referência
<?php
$p1 = 'João';
$p2 = $p1;
$p1 = 'Maria';
echo "$p1<br/>";
echo "$p2<br/>";
?>
<?php
$p1 = 'João';
$p2 = &$p1;
$p1 = 'Maria';
echo "$p1<br/>";
echo "$p2<br/>";
?>
Variáveis Geradas Dinamicamente
$$ - permite utilizar o valor de uma variável para
servir como identificador para outra que é
criada.
<?php
$nome = "João";
$futuro_identificador = "autor";
$$futuro_identificador = $nome;
echo "O nome do autor é ";
echo $autor;
?>
Saída de dados
print_r – exibe informações sobre uma variável
var_dump - Mostra informações mais detalhadas sobre
a variável, inclusive sobre tipos.
<?php
$a = array ('a' => 'abacaxi', 'b' => 'banana',
'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);
$b = 3.1;
$c = TRUE;
var_dump($b,$c);
?>
Tipo Booleano
<?php
$exibir_nome = TRUE;
if ($exibir_nome) {
echo 'José da Silva<br/>';
}
$exibir_nome = false;
if ($exibir_nome) {
echo 'Maria da Silva<br/>';
}
?>
Tipo Booleano
<?php
$umidade = 91;
$vai_chover = ($umidade > 90);
if ($vai_chover) {
echo 'Está chovendo';
}
?>
Tipo Booleano
Valores considerados falsos:
Inteiro 0
Ponto flutuante 0.0
Uma string vazia "" ou "0"
Um array vazio
Um objeto sem elementos
Tipo NULL
Tipos Numéricos
<?php
// número decimal
$a = 1234;
// um número negativo
$a = -123;
// número octal (83 em decimal)
$a = 0123;
// número hexadecimal (26 em decimal)
$a = 0x1A;
// ponto flutuante
$a = 1.234;
// notação científica
$a = 4e23;
?>
Tipos Numéricos
<?php
$a = 0x1A; // 26 em decimal
$b = -16;
$c = $a + $b;
echo "$a + $b = $c"
?>
Tipos Numéricos - Operações
<?php
$x = 10;
echo($x + 5);
echo "<br/>";
echo($x - 5);
echo "<br/>";
echo($x * 5);
echo "<br/>";
echo($x / 5);
echo "<br/>";
echo($x % 8);
?>
Operadores relacionais
<, >, <=, >=, ==, !=, ===
=== (idêntico a)
Verdadeiro se os operandos forem iguais e do
mesmo tipo.
Tipos numéricos
Funções:
floor
ceil
round
abs
min
max
rand / mt_rand (melhorado)
mt_rand
<?php
echo mt_rand() . " ";
echo mt_rand() . " ";
echo mt_rand(5, 15);
?>
Tipo String
<?php
$a = 'teste';
$b = 1;
echo 'Isto é um $a $b<br/>';
echo "Isto é um $a $b<br/>";
?>
Tipo String
<?php
$a = 'Programação para Web';
echo $a,'<br/>';
echo 'Tamanho: '.strlen($a),'<br/>';
echo 'Caixa Alta: '.strtoupper($a),'<br/>';
echo 'Número: '.str_pad('57',6,'0',STR_PAD_LEFT);
?>
str_pad
preenche uma string com outra string.
Tipo String
Heredoc
Outra maneira para delimitar strings é utilizando a
sintaxe heredoc ("<<<").
<?php
$nome = "Maria";
$str = <<<FIM
Oi, $nome. Este é um exemplo de uma<br/>
string distribuída em várias linhas<br/>
utilizando a sintaxe heredoc.
FIM;
echo $str;
?>
Tipo String
Formatação de Números
number_format
string number_format (float $numero [, int $decimais])
string number_format(float $numero, int $decimais, string
$ponto_decimal, string $separador_milhares)
<?php
$numero = 1234.56;
// Notação Brasileira
$numero_formatado = number_format($numero, 2, ',', '.');
// 1.234,56
echo "Número Formatado: $numero_formatado<br/>";
?>
Tipo String
Algumas funções:
strlen – tamanho
strpos
strcmp
strcasecmp – case insensitive
strstr / stristr (case insensitive)
strchr
substr
chop ou rtrim
ltrim
trim
str_replace
substr_replace
strtolower
strtoupper
ucfirst
ucwords
strrev
str_pad
preg_split
number_format
Tipo Array
<?php
$carros = array('Palio', 'Corsa', 'Gol');
echo $carros[1];
?>
<?php
$carros[] = 'Palio';
$carros[] = 'Corsa';
$carros[] = 'Gol';
echo $carros[1];
?>
ou
Tipo Array (Associativo)
<?php
$estados = array(
'PI' => 'Teresina',
'CE' => 'Fortaleza',
'MA' => 'São Luís');
echo "$estados[PI]<br/>";
echo "{$estados['CE']}<br/>";
echo "$estados[MA]<br/>";
?>
Tipo Array
<?php
$vetor = array (10,50,100,150,200);
echo "$vetor[2] <br/>";
$vet = array (1, 2, 3, 'nome'=>'Joaquim');
echo "$vet[0] <br/>";
echo $vet['nome'];
?>
Tipo Array
<?php
$est = array('Ceará' => 'Fortaleza',
'Piauí' => 'Teresina');
echo "A capital do Piauí é $est[Piauí].<br/>";
echo "A capital do Piauí é {$est['Piauí']}.<br/>";
echo "A capital do Piauí é {$est[Piauí]}.<br/>";
echo "A capital do Piauí é " . $est['Piauí'] . ".<br/>";
?>
Uso de chaves em Strings
Dividindo uma String em Array
<?php
$str = ' Esta é a minha casa2. ';
$str .= ' Oi, ela é muito bem dividida!!! ';
$array = preg_split('/[W]+/', $str, -1,
PREG_SPLIT_NO_EMPTY);
$tamanho = count($array);
echo "Número de palavras: $tamanho<br/>";
echo "Palavras: <br/>";
foreach($array as $palavra) {
echo "$palavra<br/>";
}
?>
Tipo Array
Funções:
array
is_array
count / sizeof
in_array
IsSet($array[$key])
unset -> remover elementos
current ou pos
next
prev
reset
end
each
max
array_flip
array_reverse
shuffle
array_pad
array_slice – extrai parte do array
array_splice – remove e subst. parte do
array.
asort – ordena e mantém assoc.
arsort
ksort
krsort
Laço - foreach
<?php
$vetor = array('banana','laranja','abacaxi','caju');
foreach ($vetor as $item) {
echo "$item <br/>";
}
?>
Escopo de variáveis
<?php
$num = 5000;
function testa_escopo1() {
$num += 5;
echo "$num <br/>";
}
echo "$num <br/>";
testa_escopo1();
?>
Escopo de variáveis
<?php
$num = 5000;
function testa_escopo1() {
global $num;
$num += 5;
echo "$num <br/>";
}
echo "$num <br/>";
testa_escopo1();
?>
Escopo de variáveis
<?php
function soma($a) {
global $b;
$b = $a + 5;
}
soma(10);
echo "o valor de 'b' é $b";
?>
Constantes
Valores predefinidos que não mudam ao
longo da execução.
A função define serve para definir uma
constante.
bool define(string $name, mixed $value [,bool $case_insensitive])
O nome da constante é dado pelo parâmetro $name; o valor
é dado por $value.
Se o terceiro parâmetro ($case_insensitive) for TRUE, a
constante será definida como case-insensitive. O padrão
é case-sensitive.
Constantes
<?php
define('CONSTANTE', 'Alô Mundo.');
echo CONSTANTE . '<br/>';
echo Constante . '<br/>';
define('SAUDACAO', 'Alô Você.',TRUE);
echo SAUDACAO . '<br/>';
echo Saudacao . '<br/>';
?>
Constantes
CONSTANTE DESCRIÇÃO
TRUE Valor verdadeiro (utilizado para comparação).
FALSE Valor falso.
__FILE__ Contém o nome do script que está sendo executado.
__LINE__ Contém o número da linha do script que está sendo executado.
PHP_VERSION Contém a versão corrente do PHP.
PHP_OS Nome do sistema operacional no qual o PHP está rodando.
E_ERROR Exibe um erro ocorrido em um script. A execução é interrompida.
E_WARNING Exibe uma mensagem de aviso do PHP. A execução não pára.
E_PARSE Exibe um erro de sintaxe. A execução é interrompida.
E_NOTICE Mostra que ocorreu algo, não necessariamente um erro.
A execução não pára.
Algumas constantes predefinidas:
Constantes
<?php
echo 'Arquivo: ' . __FILE__ . '<br/>';
echo 'Linha: ' . __LINE__ . '<br/>';
echo 'Versão do PHP: ' . PHP_VERSION . '<br/>';
echo 'Sistema Operacional: ' . PHP_OS . '<br/>';
?>
Desvio
<?php
$a = True;
if ($a) {
echo 'Verdadeiro';
} else {
echo 'Falso';
}
?>
Desvio
<?php
$idade = 15;
if ($idade < 18) {
echo 'Não pode entrar';
} else {
echo 'Pode entrar';
}
?>
Desvio
<?php
$d = getdate();
switch ($d['wday']) {
case 0:
$dia = 'Domingo'; break;
case 1:
$dia = 'Segunda'; break;
case 2:
$dia = 'Terça'; break;
case 3:
$dia = 'Quarta'; break;
case 4:
$dia = 'Quinta'; break;
case 5:
$dia = 'Sexta'; break;
case 6:
$dia = 'Sábado'; break;
default:
$dia = 'Erro';
}
echo "Hoje é $dia";
?>
Laço contado
<?php
echo 'Números ímpares de 1 a 100: <br/>';
for ($i = 1; $i < 100; $i += 2) {
echo "$i ";
}
?>
Laço condicional
<?php
echo 'Números entre 1 e 10: <br/>';
$i = 1;
while($i <= 10) {
echo "$i ";
$i++;
}
?>
Laço condicional
<?php
echo 'Números entre 1 e 10: <br/>';
$i = 1;
do {
echo "$i ";
$i++;
} while($i <= 10)
?>
Sintaxe alternativa
 Existe uma sintaxe alternativa para algumas
estruturas de controle:
 if, while, for, foreach e switch.
 A forma básica é mudar o sinal de abertura de bloco
para dois-pontos (:) e o sinal de fechamento para
endif;, endwhile;, endfor;, endforeach; ou
endswitch;, respectivamente.
Sintaxe alternativa
<?php
if ($a == 5):
echo "a igual a 5";
echo "...";
elseif ($a == 6):
echo "a igual a 6";
echo "!!!";
else:
echo "a não é nem 5 nem 6";
endif;
?>
Sintaxe alternativa
...
<ul>
<?php foreach($valores as $elemento): ?>
<li><?= $elemento ?></li>
<?php endforeach; ?>
</ul>
...
Função
<?php
function media($a, $b) {
return ($a + $b) / 2;
}
echo 'A média entre 2 e 7 é: ' . media(2,7);
?>
Função
<?php
function area_circulo($raio) {
return M_PI * pow($raio, 2);
}
$meuRaio = 5;
$area = area_circulo($meuRaio);
echo "Raio: $meuRaio<br/>";
echo "Área: $area<br/>";
?>
Função
<?php
function escreve_texto() {
echo 'Já sei criar funções em PHP';
}
escreve_texto();
?>
Função
 O caracter '@' poder ser usado imediatamente antes do
nome da função para suprimir possíveis mensagens de
erro.
<?php
funcao_inexistente();
?>
<?php
@funcao_inexistente();
?>
include ou require
 Ambos incluem e avaliam o arquivo informado.
 A ausência do arquivo especificado no require,
interrompe o processamento e produz um Fatal
Error.
include_once ou require_once
 Similar a include e require, mas se o arquivo
já tiver sido incluído, a inclusão não será feita
novamente.
Dados entre páginas
HTTP não possui estado
Cada requisição é única e não sabe nada sobre as
demais.
Não tem memória.
Cada requisição resulta na execução de um processo
que é finalizado logo após sua execução.
Para uma página mandar informações para uma outra
há as seguintes opções:
Formulários HTML
Cookies
Sessões
Dados entre páginas
A técnica mais simples de passar dados entre páginas
usa os métodos GET e POST do protocolo HTTP.
GET – dados são transmitidos na própria URL.
Vantagem: pode ser adicionado aos favoritos.
Exemplo: pesquisa no Google...
http://www.google.com.br/search?hl=pt-BR&q=cefet&btnG=Pesquisar&meta=
Desvantagens:
Não seguro para informações confidenciais como senha;
Requisições GET ficam gravadas no log do servidor e no histórico do
cliente;
O tamanho da URL é limitado, ficando inviável enviar muita informação
via GET.
Dados entre páginas
GET é muito usado para navegação (links).
POST
POST é a forma ideal de transmitir dados de
formulários;
Vantagens:
Mais seguro que GET, pois a informação não fica tão visível;
Permite a passagem de grande quantidade de dados;
Desvantagens:
Não pode ser adicionado aos favoritos;
Os resultados podem ser perdidos se o usuário navegar pelos
botões voltar e avançar no navegador;
Dados entre páginas
Resumindo:
Usar POST em formulários;
Usar GET para navegação e buscas.
Dados entre páginas - GET
<!-- formulario.php -->
<html>
<head>
<title>PHP Teste</title>
</head>
<body>
<form action="processa.php" method="GET">
Seu nome <input type="text" name="nome" />
Sua idade: <input type="text" name="idade" />
<input type="submit">
</form>
</body>
</html>
Dados entre páginas - GET
<!-- processa.php -->
<html>
<head>
<title>PHP Teste</title>
</head>
<body>
Oi <?php echo $_GET["nome"]; ?>.
Você tem <?php echo $_GET["idade"]; ?> anos.
</body>
</html>
Dados entre páginas - POST
<!-- formulario.php -->
<html>
<head>
<title>PHP Teste</title>
</head>
<body>
<form action="processa.php" method="POST">
Seu nome <input type="text" name="nome" />
Sua idade: <input type="text" name="idade" />
<input type="submit">
</form>
</body>
</html>
Dados entre páginas - POST
<!-- processa.php -->
<html>
<head>
<title>PHP Teste</title>
</head>
<body>
Oi <?php echo $_POST["nome"]; ?>.
Você tem <?php echo $_POST["idade"]; ?> anos.
</body>
</html>
Usando uma única página
<html>
<head><title>CEFET-PI PHB</title></head>
<body>
<form action="nome_idade.php" method="POST">
<p>Seu nome <input type="text" name="nome"
value="<?php echo $_POST['nome'] ?>"/></p>
<p>Sua idade: <input type="text" name="idade"
value="<?php echo $_POST['idade'] ?>"/></p>
<input type="submit">
</form>
<?php
if (isset($_POST['nome'])) {
echo "Oi, {$_POST['nome']}.";
echo "Você tem {$_POST['idade']} anos.";
}
?>
</body>
</html>
Dados entre páginas
_REQUEST
Contém um array associativo com os conteúdos de
$_GET, $_POST e $_COOKIE.
<form action="foo.php" method="post">
Nome: <input type="text" name="username" /><br />
Email: <input type="text" name="email" /><br />
<input type="submit" name="submit" value="Me aperte!" />
</form>
<?php
echo $_POST['username'];
echo $_REQUEST['username'];
?>
Variáveis HTTP
$_SERVER
$_ENV
$_COOKIE
$_GET
$_POST
$_FILES
$_REQUEST
$_SESSION
$GLOBALS
$HTTP_RAW_POST_DATA
$http_response_header

More Related Content

What's hot

Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIinfo_cimol
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIinfo_cimol
 
Arrays PHP - Criação de sites II
Arrays PHP - Criação de sites IIArrays PHP - Criação de sites II
Arrays PHP - Criação de sites IIinfo_cimol
 
Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1garux
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformanceFelipe Ribeiro
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell ScriptHugo Maia Vieira
 
Aula 02 - Introdução ao PHP - Programação Web
Aula 02  - Introdução ao PHP - Programação WebAula 02  - Introdução ao PHP - Programação Web
Aula 02 - Introdução ao PHP - Programação WebDalton Martins
 
12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015Flávia Santos
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell ScriptLuís Eduardo
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesStanislaw Pusep
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidademetzen
 
PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7iMasters
 

What's hot (18)

Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites II
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
 
Hello SAFE World!!!
Hello SAFE World!!!Hello SAFE World!!!
Hello SAFE World!!!
 
Arrays PHP - Criação de sites II
Arrays PHP - Criação de sites IIArrays PHP - Criação de sites II
Arrays PHP - Criação de sites II
 
Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1
 
Php
PhpPhp
Php
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
 
Aula 02 - Introdução ao PHP - Programação Web
Aula 02  - Introdução ao PHP - Programação WebAula 02  - Introdução ao PHP - Programação Web
Aula 02 - Introdução ao PHP - Programação Web
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell Script
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testes
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7
 
PHP MySQL Aula 07
PHP MySQL Aula 07PHP MySQL Aula 07
PHP MySQL Aula 07
 

More from Regis Magalhães

Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducaoRegis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosRegis Magalhães
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosRegis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducaoRegis Magalhães
 
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Regis Magalhães
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Regis Magalhães
 

More from Regis Magalhães (20)

High Dimensional Data
High Dimensional DataHigh Dimensional Data
High Dimensional Data
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 09-php-crud-mvc
Prog web 09-php-crud-mvcProg web 09-php-crud-mvc
Prog web 09-php-crud-mvc
 
Prog web 08-php-mvc
Prog web 08-php-mvcProg web 08-php-mvc
Prog web 08-php-mvc
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
Prog web 04-php-gd
Prog web 04-php-gdProg web 04-php-gd
Prog web 04-php-gd
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 

Prog web 02-php-primeiros-passos

  • 1. Programação para WEB Regis Pires Magalhães regispiresmag@gmail.com PHP: Primeiros Passos
  • 2. “Olá, Mundo” em PHP <html> <head> <title>Exemplo</title> </head> <body> <?php echo "Olá, Mundo!"; ?> </body> </html>
  • 3. Informações sobre o PHP <?php phpinfo(); ?>
  • 4. Delimitadores de Código O código deve estar contido entre os delimitadores: <?php // ... ?>
  • 5. Comentários De linha: De bloco: <?php // echo "a"; # echo "a"; ?> <?php /* echo "a"; echo "b"; */ ?>
  • 6. Comandos de Saída echo – Exibe uma ou mais Strings void echo ( string $arg1 [, string $...] ) Sem parênteses: pode ter vários parâmetros Com parênteses: somente um parâmetro <?php echo 'a', 'b', 'c', '<br/>'; echo('a<br/>'); ?>
  • 7. Comandos de Saída print – Mostra uma string int print ( string $arg ) Só permite um único parâmetro Com ou sem parênteses Retorna sempre 1 <?php print 'a<br/>'; print('a<br/>'); ?>
  • 8. Comandos de saída Concatenação de strings <?php echo 'a', 'b', 'c', '<br/>'; echo 'a' . 'b' . 'c' . '<br/>'; echo('a' . 'b' . 'c' . '<br/>'); print 'a' . 'b' . 'c' . '<br/>'; print('a' . 'b' . 'c' . '<br/>'); ?>
  • 9. Variáveis Sempre precedidas de $ Case sensitive: $nome != $Nome <?php $nome = "João"; $sobrenome = "da Silva"; echo 'Sobrenome: $sobrenome - Nome: $nome<br/>'; echo 'Sobrenome: ' . $sobrenome . ' - Nome: ' . $nome . '<br/>'; echo "Sobrenome: $sobrenome - Nome: $nome<br/>"; echo "Nome Completo: $nome $sobrenome<br/>"; ?>
  • 10. Variáveis <?php $a = 10; $A = 20; echo "O valor de $a é $a e o de $A é $A"; ?>
  • 11. Variáveis <?php $a = 5; $b = $a; $b = 10; echo $a; // ??? echo $b; // ??? ?>
  • 12. Variáveis <?php $a = 5; $b = &$a; $b = 10; echo $a; // ??? echo $b; // ??? ?>
  • 13. Variáveis <html> <head> <title>CEFET-PI PHB</title> </head> <body> <?php $data_de_hoje = date ("d/m/Y H:i:s",time()); ?> <p>Data e hora no servidor: <?php echo $data_de_hoje; ?></p> </body> </html>
  • 14. Variáveis <html> <head> <title>CEFET-PI PHB</title> </head> <body> <?php $base = 10; $altura = 20; $area = $base * $altura; echo "Base: $base - Altura: $altura - Área: $area"; ?> </body> </html>
  • 15. Variáveis <?php $a = 'PHP'; echo $a; unset($a); echo $a; ?> unset – destrói a variável especificada.
  • 16. Valor e Referência <?php $p1 = 'João'; $p2 = $p1; $p1 = 'Maria'; echo "$p1<br/>"; echo "$p2<br/>"; ?> <?php $p1 = 'João'; $p2 = &$p1; $p1 = 'Maria'; echo "$p1<br/>"; echo "$p2<br/>"; ?>
  • 17. Variáveis Geradas Dinamicamente $$ - permite utilizar o valor de uma variável para servir como identificador para outra que é criada. <?php $nome = "João"; $futuro_identificador = "autor"; $$futuro_identificador = $nome; echo "O nome do autor é "; echo $autor; ?>
  • 18. Saída de dados print_r – exibe informações sobre uma variável var_dump - Mostra informações mais detalhadas sobre a variável, inclusive sobre tipos. <?php $a = array ('a' => 'abacaxi', 'b' => 'banana', 'c' => array ('x', 'y', 'z')); print_r ($a); ?> <?php $a = array (1, 2, array ("a", "b", "c")); var_dump ($a); $b = 3.1; $c = TRUE; var_dump($b,$c); ?>
  • 19. Tipo Booleano <?php $exibir_nome = TRUE; if ($exibir_nome) { echo 'José da Silva<br/>'; } $exibir_nome = false; if ($exibir_nome) { echo 'Maria da Silva<br/>'; } ?>
  • 20. Tipo Booleano <?php $umidade = 91; $vai_chover = ($umidade > 90); if ($vai_chover) { echo 'Está chovendo'; } ?>
  • 21. Tipo Booleano Valores considerados falsos: Inteiro 0 Ponto flutuante 0.0 Uma string vazia "" ou "0" Um array vazio Um objeto sem elementos Tipo NULL
  • 22. Tipos Numéricos <?php // número decimal $a = 1234; // um número negativo $a = -123; // número octal (83 em decimal) $a = 0123; // número hexadecimal (26 em decimal) $a = 0x1A; // ponto flutuante $a = 1.234; // notação científica $a = 4e23; ?>
  • 23. Tipos Numéricos <?php $a = 0x1A; // 26 em decimal $b = -16; $c = $a + $b; echo "$a + $b = $c" ?>
  • 24. Tipos Numéricos - Operações <?php $x = 10; echo($x + 5); echo "<br/>"; echo($x - 5); echo "<br/>"; echo($x * 5); echo "<br/>"; echo($x / 5); echo "<br/>"; echo($x % 8); ?>
  • 25. Operadores relacionais <, >, <=, >=, ==, !=, === === (idêntico a) Verdadeiro se os operandos forem iguais e do mesmo tipo.
  • 27. mt_rand <?php echo mt_rand() . " "; echo mt_rand() . " "; echo mt_rand(5, 15); ?>
  • 28. Tipo String <?php $a = 'teste'; $b = 1; echo 'Isto é um $a $b<br/>'; echo "Isto é um $a $b<br/>"; ?>
  • 29. Tipo String <?php $a = 'Programação para Web'; echo $a,'<br/>'; echo 'Tamanho: '.strlen($a),'<br/>'; echo 'Caixa Alta: '.strtoupper($a),'<br/>'; echo 'Número: '.str_pad('57',6,'0',STR_PAD_LEFT); ?> str_pad preenche uma string com outra string.
  • 30. Tipo String Heredoc Outra maneira para delimitar strings é utilizando a sintaxe heredoc ("<<<"). <?php $nome = "Maria"; $str = <<<FIM Oi, $nome. Este é um exemplo de uma<br/> string distribuída em várias linhas<br/> utilizando a sintaxe heredoc. FIM; echo $str; ?>
  • 31. Tipo String Formatação de Números number_format string number_format (float $numero [, int $decimais]) string number_format(float $numero, int $decimais, string $ponto_decimal, string $separador_milhares) <?php $numero = 1234.56; // Notação Brasileira $numero_formatado = number_format($numero, 2, ',', '.'); // 1.234,56 echo "Número Formatado: $numero_formatado<br/>"; ?>
  • 32. Tipo String Algumas funções: strlen – tamanho strpos strcmp strcasecmp – case insensitive strstr / stristr (case insensitive) strchr substr chop ou rtrim ltrim trim str_replace substr_replace strtolower strtoupper ucfirst ucwords strrev str_pad preg_split number_format
  • 33. Tipo Array <?php $carros = array('Palio', 'Corsa', 'Gol'); echo $carros[1]; ?> <?php $carros[] = 'Palio'; $carros[] = 'Corsa'; $carros[] = 'Gol'; echo $carros[1]; ?> ou
  • 34. Tipo Array (Associativo) <?php $estados = array( 'PI' => 'Teresina', 'CE' => 'Fortaleza', 'MA' => 'São Luís'); echo "$estados[PI]<br/>"; echo "{$estados['CE']}<br/>"; echo "$estados[MA]<br/>"; ?>
  • 35. Tipo Array <?php $vetor = array (10,50,100,150,200); echo "$vetor[2] <br/>"; $vet = array (1, 2, 3, 'nome'=>'Joaquim'); echo "$vet[0] <br/>"; echo $vet['nome']; ?>
  • 36. Tipo Array <?php $est = array('Ceará' => 'Fortaleza', 'Piauí' => 'Teresina'); echo "A capital do Piauí é $est[Piauí].<br/>"; echo "A capital do Piauí é {$est['Piauí']}.<br/>"; echo "A capital do Piauí é {$est[Piauí]}.<br/>"; echo "A capital do Piauí é " . $est['Piauí'] . ".<br/>"; ?> Uso de chaves em Strings
  • 37. Dividindo uma String em Array <?php $str = ' Esta é a minha casa2. '; $str .= ' Oi, ela é muito bem dividida!!! '; $array = preg_split('/[W]+/', $str, -1, PREG_SPLIT_NO_EMPTY); $tamanho = count($array); echo "Número de palavras: $tamanho<br/>"; echo "Palavras: <br/>"; foreach($array as $palavra) { echo "$palavra<br/>"; } ?>
  • 38. Tipo Array Funções: array is_array count / sizeof in_array IsSet($array[$key]) unset -> remover elementos current ou pos next prev reset end each max array_flip array_reverse shuffle array_pad array_slice – extrai parte do array array_splice – remove e subst. parte do array. asort – ordena e mantém assoc. arsort ksort krsort
  • 39. Laço - foreach <?php $vetor = array('banana','laranja','abacaxi','caju'); foreach ($vetor as $item) { echo "$item <br/>"; } ?>
  • 40. Escopo de variáveis <?php $num = 5000; function testa_escopo1() { $num += 5; echo "$num <br/>"; } echo "$num <br/>"; testa_escopo1(); ?>
  • 41. Escopo de variáveis <?php $num = 5000; function testa_escopo1() { global $num; $num += 5; echo "$num <br/>"; } echo "$num <br/>"; testa_escopo1(); ?>
  • 42. Escopo de variáveis <?php function soma($a) { global $b; $b = $a + 5; } soma(10); echo "o valor de 'b' é $b"; ?>
  • 43. Constantes Valores predefinidos que não mudam ao longo da execução. A função define serve para definir uma constante. bool define(string $name, mixed $value [,bool $case_insensitive]) O nome da constante é dado pelo parâmetro $name; o valor é dado por $value. Se o terceiro parâmetro ($case_insensitive) for TRUE, a constante será definida como case-insensitive. O padrão é case-sensitive.
  • 44. Constantes <?php define('CONSTANTE', 'Alô Mundo.'); echo CONSTANTE . '<br/>'; echo Constante . '<br/>'; define('SAUDACAO', 'Alô Você.',TRUE); echo SAUDACAO . '<br/>'; echo Saudacao . '<br/>'; ?>
  • 45. Constantes CONSTANTE DESCRIÇÃO TRUE Valor verdadeiro (utilizado para comparação). FALSE Valor falso. __FILE__ Contém o nome do script que está sendo executado. __LINE__ Contém o número da linha do script que está sendo executado. PHP_VERSION Contém a versão corrente do PHP. PHP_OS Nome do sistema operacional no qual o PHP está rodando. E_ERROR Exibe um erro ocorrido em um script. A execução é interrompida. E_WARNING Exibe uma mensagem de aviso do PHP. A execução não pára. E_PARSE Exibe um erro de sintaxe. A execução é interrompida. E_NOTICE Mostra que ocorreu algo, não necessariamente um erro. A execução não pára. Algumas constantes predefinidas:
  • 46. Constantes <?php echo 'Arquivo: ' . __FILE__ . '<br/>'; echo 'Linha: ' . __LINE__ . '<br/>'; echo 'Versão do PHP: ' . PHP_VERSION . '<br/>'; echo 'Sistema Operacional: ' . PHP_OS . '<br/>'; ?>
  • 47. Desvio <?php $a = True; if ($a) { echo 'Verdadeiro'; } else { echo 'Falso'; } ?>
  • 48. Desvio <?php $idade = 15; if ($idade < 18) { echo 'Não pode entrar'; } else { echo 'Pode entrar'; } ?>
  • 49. Desvio <?php $d = getdate(); switch ($d['wday']) { case 0: $dia = 'Domingo'; break; case 1: $dia = 'Segunda'; break; case 2: $dia = 'Terça'; break; case 3: $dia = 'Quarta'; break; case 4: $dia = 'Quinta'; break; case 5: $dia = 'Sexta'; break; case 6: $dia = 'Sábado'; break; default: $dia = 'Erro'; } echo "Hoje é $dia"; ?>
  • 50. Laço contado <?php echo 'Números ímpares de 1 a 100: <br/>'; for ($i = 1; $i < 100; $i += 2) { echo "$i "; } ?>
  • 51. Laço condicional <?php echo 'Números entre 1 e 10: <br/>'; $i = 1; while($i <= 10) { echo "$i "; $i++; } ?>
  • 52. Laço condicional <?php echo 'Números entre 1 e 10: <br/>'; $i = 1; do { echo "$i "; $i++; } while($i <= 10) ?>
  • 53. Sintaxe alternativa  Existe uma sintaxe alternativa para algumas estruturas de controle:  if, while, for, foreach e switch.  A forma básica é mudar o sinal de abertura de bloco para dois-pontos (:) e o sinal de fechamento para endif;, endwhile;, endfor;, endforeach; ou endswitch;, respectivamente.
  • 54. Sintaxe alternativa <?php if ($a == 5): echo "a igual a 5"; echo "..."; elseif ($a == 6): echo "a igual a 6"; echo "!!!"; else: echo "a não é nem 5 nem 6"; endif; ?>
  • 55. Sintaxe alternativa ... <ul> <?php foreach($valores as $elemento): ?> <li><?= $elemento ?></li> <?php endforeach; ?> </ul> ...
  • 56. Função <?php function media($a, $b) { return ($a + $b) / 2; } echo 'A média entre 2 e 7 é: ' . media(2,7); ?>
  • 57. Função <?php function area_circulo($raio) { return M_PI * pow($raio, 2); } $meuRaio = 5; $area = area_circulo($meuRaio); echo "Raio: $meuRaio<br/>"; echo "Área: $area<br/>"; ?>
  • 58. Função <?php function escreve_texto() { echo 'Já sei criar funções em PHP'; } escreve_texto(); ?>
  • 59. Função  O caracter '@' poder ser usado imediatamente antes do nome da função para suprimir possíveis mensagens de erro. <?php funcao_inexistente(); ?> <?php @funcao_inexistente(); ?>
  • 60. include ou require  Ambos incluem e avaliam o arquivo informado.  A ausência do arquivo especificado no require, interrompe o processamento e produz um Fatal Error.
  • 61. include_once ou require_once  Similar a include e require, mas se o arquivo já tiver sido incluído, a inclusão não será feita novamente.
  • 62. Dados entre páginas HTTP não possui estado Cada requisição é única e não sabe nada sobre as demais. Não tem memória. Cada requisição resulta na execução de um processo que é finalizado logo após sua execução. Para uma página mandar informações para uma outra há as seguintes opções: Formulários HTML Cookies Sessões
  • 63. Dados entre páginas A técnica mais simples de passar dados entre páginas usa os métodos GET e POST do protocolo HTTP. GET – dados são transmitidos na própria URL. Vantagem: pode ser adicionado aos favoritos. Exemplo: pesquisa no Google... http://www.google.com.br/search?hl=pt-BR&q=cefet&btnG=Pesquisar&meta= Desvantagens: Não seguro para informações confidenciais como senha; Requisições GET ficam gravadas no log do servidor e no histórico do cliente; O tamanho da URL é limitado, ficando inviável enviar muita informação via GET.
  • 64. Dados entre páginas GET é muito usado para navegação (links). POST POST é a forma ideal de transmitir dados de formulários; Vantagens: Mais seguro que GET, pois a informação não fica tão visível; Permite a passagem de grande quantidade de dados; Desvantagens: Não pode ser adicionado aos favoritos; Os resultados podem ser perdidos se o usuário navegar pelos botões voltar e avançar no navegador;
  • 65. Dados entre páginas Resumindo: Usar POST em formulários; Usar GET para navegação e buscas.
  • 66. Dados entre páginas - GET <!-- formulario.php --> <html> <head> <title>PHP Teste</title> </head> <body> <form action="processa.php" method="GET"> Seu nome <input type="text" name="nome" /> Sua idade: <input type="text" name="idade" /> <input type="submit"> </form> </body> </html>
  • 67. Dados entre páginas - GET <!-- processa.php --> <html> <head> <title>PHP Teste</title> </head> <body> Oi <?php echo $_GET["nome"]; ?>. Você tem <?php echo $_GET["idade"]; ?> anos. </body> </html>
  • 68. Dados entre páginas - POST <!-- formulario.php --> <html> <head> <title>PHP Teste</title> </head> <body> <form action="processa.php" method="POST"> Seu nome <input type="text" name="nome" /> Sua idade: <input type="text" name="idade" /> <input type="submit"> </form> </body> </html>
  • 69. Dados entre páginas - POST <!-- processa.php --> <html> <head> <title>PHP Teste</title> </head> <body> Oi <?php echo $_POST["nome"]; ?>. Você tem <?php echo $_POST["idade"]; ?> anos. </body> </html>
  • 70. Usando uma única página <html> <head><title>CEFET-PI PHB</title></head> <body> <form action="nome_idade.php" method="POST"> <p>Seu nome <input type="text" name="nome" value="<?php echo $_POST['nome'] ?>"/></p> <p>Sua idade: <input type="text" name="idade" value="<?php echo $_POST['idade'] ?>"/></p> <input type="submit"> </form> <?php if (isset($_POST['nome'])) { echo "Oi, {$_POST['nome']}."; echo "Você tem {$_POST['idade']} anos."; } ?> </body> </html>
  • 71. Dados entre páginas _REQUEST Contém um array associativo com os conteúdos de $_GET, $_POST e $_COOKIE. <form action="foo.php" method="post"> Nome: <input type="text" name="username" /><br /> Email: <input type="text" name="email" /><br /> <input type="submit" name="submit" value="Me aperte!" /> </form> <?php echo $_POST['username']; echo $_REQUEST['username']; ?>