SlideShare uma empresa Scribd logo
1 de 72
Programação para WEBRegis Pires Magalhãesregispiresmag@gmail.comPHP: PrimeirosPassos
“Olá, Mundo” em PHP<html><head><title>Exemplo</title></head><body><?phpecho "Olá, Mundo!";?></body></html>
Informações sobre o PHP<?phpphpinfo();?>
Delimitadores de CódigoO código deve estar contido entre osdelimitadores:<?php// ...?>
ComentáriosDe linha:De bloco:<?php// echo "a";# echo "a";?><?php/* echo "a";echo "b"; */?>
Comandos de Saídaecho – Exibe uma ou mais Stringsvoid echo ( string $arg1 [, string $...] )Sem parênteses: pode ter vários parâmetrosCom parênteses: somente um parâmetro<?phpecho a, b, c, <br/>;echo(a<br/>);?>
Comandos de Saídaprint – Mostra uma stringint print ( string $arg )Só permite um único parâmetroCom ou sem parêntesesRetorna sempre 1<?phpprint a<br/>;print(a<br/>);?>
Comandos de saídaConcatenação de strings<?phpecho 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áveisSempre 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 paraservir 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 dadosprint_r – exibe informações sobre uma variávelvar_dump - Mostra informações mais detalhadas sobrea 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 BooleanoValores considerados falsos:Inteiro 0Ponto flutuante 0.0Uma string vazia "" ou "0"Um array vazioUm objeto sem elementosTipo 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 domesmo tipo.
Tipos numéricosFunções:floorceilroundabsminmaxrand / mt_rand (melhorado)
mt_rand<?phpecho 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_padpreenche uma string com outra string.
Tipo StringHeredocOutra maneira para delimitar strings é utilizando asintaxe heredoc ("<<<").<?php$nome = "Maria";$str = <<<FIMOi, $nome. Este é um exemplo de uma<br/>string distribuída em várias linhas<br/>utilizando a sintaxe heredoc.FIM;echo $str;?>
Tipo StringFormatação de Númerosnumber_formatstring 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,56echo "Número Formatado: $numero_formatado<br/>";?>
Tipo StringAlgumas funções:strlen – tamanhostrposstrcmpstrcasecmp – case insensitivestrstr / stristr (case insensitive)strchrsubstrchop ou rtrimltrimtrimstr_replacesubstr_replacestrtolowerstrtoupperucfirstucwordsstrrevstr_padpreg_splitnumber_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 ArrayFunções:arrayis_arraycount / sizeofin_arrayIsSet($array[$key])unset -> remover elementoscurrent ou posnextprevresetendeachmaxarray_fliparray_reverseshufflearray_padarray_slice – extrai parte do arrayarray_splice – remove e subst. parte doarray.asort – ordena e mantém assoc.arsortksortkrsortsort – ordena um arrayrsortuasortaksortusort
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<?phpfunction soma($a) {global $b;$b = $a + 5;}soma(10);echo "o valor de b é $b";?>
ConstantesValores predefinidos que não mudam aolongo da execução.A função define serve para definir umaconstante.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, aconstante será definida como case-insensitive. O padrão écase-sensitive.
Constantes<?phpdefine(CONSTANTE, Alô Mundo.);echo CONSTANTE . <br/>;echo Constante . <br/>;define(SAUDACAO, Alô Você.,TRUE);echo SAUDACAO . <br/>;echo Saudacao . <br/>;?>
ConstantesCONSTANTE DESCRIÇÃOTRUE 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<?phpecho 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<?phpecho Números ímpares de 1 a 100: <br/>;for ($i = 1; $i < 100; $i += 2) {echo "$i ";}?>
Laço condicional<?phpecho Números entre 1 e 10: <br/>;$i = 1;while($i <= 10) {echo "$i ";$i++;}?>
Laço condicional<?phpecho Números entre 1 e 10: <br/>;$i = 1;do {echo "$i ";$i++;} while($i <= 10)?>
Sintaxe alternativa Existe uma sintaxe alternativa para algumasestruturas de controle: if, while, for, foreach e switch. A forma básica é mudar o sinal de abertura de blocopara dois-pontos (:) e o sinal de fechamento paraendif;, endwhile;, endfor;, endforeach; ouendswitch;, respectivamente.
Sintaxe alternativa<?phpif ($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<?phpfunction media($a, $b) {return ($a + $b) / 2;}echo A média entre 2 e 7 é:  . media(2,7);?>
Função<?phpfunction 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<?phpfunction escreve_texto() {echo Já sei criar funções em PHP;}escreve_texto();?>
Função O caracter @ poder ser usado imediatamente antes donome da função para suprimir possíveis mensagens deerro.<?phpfuncao_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 FatalError.
include_once ou require_once Similar a include e require, mas se o arquivojá tiver sido incluído, a inclusão não será feitanovamente.
Dados entre páginasHTTP não possui estadoCada requisição é única e não sabe nada sobre asdemais.Não tem memória.Cada requisição resulta na execução de um processoque é finalizado logo após sua execução.Para uma página mandar informações para uma outrahá as seguintes opções:Formulários HTMLCookiesSessões
Dados entre páginasA técnica mais simples de passar dados entre páginasusa 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 docliente;O tamanho da URL é limitado, ficando inviável enviar muita informaçãovia GET.
Dados entre páginasGET é muito usado para navegação (links).POSTPOST é a forma ideal de transmitir dados deformulá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 pelosbotões voltar e avançar no navegador;
Dados entre páginasResumindo: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><?phpif (isset($_POST[nome])) {echo "Oi, {$_POST[nome]}.";echo "Você tem {$_POST[idade]} anos.";}?></body></html>
Dados entre páginas_REQUESTConté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><?phpecho $_POST[username];echo $_REQUEST[username];?>
Variáveis HTTP$_SERVER$_ENV$_COOKIE$_GET$_POST$_FILES$_REQUEST$_SESSION$GLOBALS$HTTP_RAW_POST_DATA$http_response_header

Mais conteúdo relacionado

Destaque

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 - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Regis 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
 
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
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 

Destaque (20)

Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Pascal Tipos
Pascal TiposPascal Tipos
Pascal Tipos
 
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
 
Java 14 Javadoc
Java 14 JavadocJava 14 Javadoc
Java 14 Javadoc
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
 
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
 
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
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Prog web 08-php-mvc
Prog web 08-php-mvcProg web 08-php-mvc
Prog web 08-php-mvc
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 
Robocode
RobocodeRobocode
Robocode
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 

Semelhante a PHP: Primeiros passos

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
 
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
 
PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanosCaike Souza
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que pareceImpacta Eventos
 

Semelhante a PHP: Primeiros passos (7)

Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Aula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQLAula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQL
 
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
 
apostila.pdf
apostila.pdfapostila.pdf
apostila.pdf
 
Aula06
Aula06Aula06
Aula06
 
PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanos
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 

Mais de Regis Magalhães

Mais de Regis Magalhães (14)

High Dimensional Data
High Dimensional DataHigh Dimensional Data
High Dimensional Data
 
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 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 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
 
Java 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral Resumo
 
Merci 10 Completo
Merci 10 CompletoMerci 10 Completo
Merci 10 Completo
 
php 01 introducao
php 01 introducaophp 01 introducao
php 01 introducao
 
java 00 Introducao
java 00 Introducaojava 00 Introducao
java 00 Introducao
 
POO Plano de Curso
POO Plano de CursoPOO Plano de Curso
POO Plano de Curso
 
Php 04 Mysql
Php 04 MysqlPhp 04 Mysql
Php 04 Mysql
 
Php 08 Oo
Php 08 OoPhp 08 Oo
Php 08 Oo
 

PHP: Primeiros passos

  • 1. Programação para WEBRegis Pires Magalhãesregispiresmag@gmail.comPHP: PrimeirosPassos
  • 2. “Olá, Mundo” em PHP<html><head><title>Exemplo</title></head><body><?phpecho "Olá, Mundo!";?></body></html>
  • 3. Informações sobre o PHP<?phpphpinfo();?>
  • 4. Delimitadores de CódigoO código deve estar contido entre osdelimitadores:<?php// ...?>
  • 5. ComentáriosDe linha:De bloco:<?php// echo "a";# echo "a";?><?php/* echo "a";echo "b"; */?>
  • 6. Comandos de Saídaecho – Exibe uma ou mais Stringsvoid echo ( string $arg1 [, string $...] )Sem parênteses: pode ter vários parâmetrosCom parênteses: somente um parâmetro<?phpecho a, b, c, <br/>;echo(a<br/>);?>
  • 7. Comandos de Saídaprint – Mostra uma stringint print ( string $arg )Só permite um único parâmetroCom ou sem parêntesesRetorna sempre 1<?phpprint a<br/>;print(a<br/>);?>
  • 8. Comandos de saídaConcatenação de strings<?phpecho 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áveisSempre 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 paraservir 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 dadosprint_r – exibe informações sobre uma variávelvar_dump - Mostra informações mais detalhadas sobrea 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 BooleanoValores considerados falsos:Inteiro 0Ponto flutuante 0.0Uma string vazia "" ou "0"Um array vazioUm objeto sem elementosTipo 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 domesmo tipo.
  • 27. mt_rand<?phpecho 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_padpreenche uma string com outra string.
  • 30. Tipo StringHeredocOutra maneira para delimitar strings é utilizando asintaxe heredoc ("<<<").<?php$nome = "Maria";$str = <<<FIMOi, $nome. Este é um exemplo de uma<br/>string distribuída em várias linhas<br/>utilizando a sintaxe heredoc.FIM;echo $str;?>
  • 31. Tipo StringFormatação de Númerosnumber_formatstring 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,56echo "Número Formatado: $numero_formatado<br/>";?>
  • 32. Tipo StringAlgumas funções:strlen – tamanhostrposstrcmpstrcasecmp – case insensitivestrstr / stristr (case insensitive)strchrsubstrchop ou rtrimltrimtrimstr_replacesubstr_replacestrtolowerstrtoupperucfirstucwordsstrrevstr_padpreg_splitnumber_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 ArrayFunções:arrayis_arraycount / sizeofin_arrayIsSet($array[$key])unset -> remover elementoscurrent ou posnextprevresetendeachmaxarray_fliparray_reverseshufflearray_padarray_slice – extrai parte do arrayarray_splice – remove e subst. parte doarray.asort – ordena e mantém assoc.arsortksortkrsortsort – ordena um arrayrsortuasortaksortusort
  • 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<?phpfunction soma($a) {global $b;$b = $a + 5;}soma(10);echo "o valor de b é $b";?>
  • 43. ConstantesValores predefinidos que não mudam aolongo da execução.A função define serve para definir umaconstante.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, aconstante será definida como case-insensitive. O padrão écase-sensitive.
  • 44. Constantes<?phpdefine(CONSTANTE, Alô Mundo.);echo CONSTANTE . <br/>;echo Constante . <br/>;define(SAUDACAO, Alô Você.,TRUE);echo SAUDACAO . <br/>;echo Saudacao . <br/>;?>
  • 45. ConstantesCONSTANTE DESCRIÇÃOTRUE 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<?phpecho 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<?phpecho Números ímpares de 1 a 100: <br/>;for ($i = 1; $i < 100; $i += 2) {echo "$i ";}?>
  • 51. Laço condicional<?phpecho Números entre 1 e 10: <br/>;$i = 1;while($i <= 10) {echo "$i ";$i++;}?>
  • 52. Laço condicional<?phpecho Números entre 1 e 10: <br/>;$i = 1;do {echo "$i ";$i++;} while($i <= 10)?>
  • 53. Sintaxe alternativa Existe uma sintaxe alternativa para algumasestruturas de controle: if, while, for, foreach e switch. A forma básica é mudar o sinal de abertura de blocopara dois-pontos (:) e o sinal de fechamento paraendif;, endwhile;, endfor;, endforeach; ouendswitch;, respectivamente.
  • 54. Sintaxe alternativa<?phpif ($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<?phpfunction media($a, $b) {return ($a + $b) / 2;}echo A média entre 2 e 7 é: . media(2,7);?>
  • 57. Função<?phpfunction 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<?phpfunction escreve_texto() {echo Já sei criar funções em PHP;}escreve_texto();?>
  • 59. Função O caracter @ poder ser usado imediatamente antes donome da função para suprimir possíveis mensagens deerro.<?phpfuncao_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 FatalError.
  • 61. include_once ou require_once Similar a include e require, mas se o arquivojá tiver sido incluído, a inclusão não será feitanovamente.
  • 62. Dados entre páginasHTTP não possui estadoCada requisição é única e não sabe nada sobre asdemais.Não tem memória.Cada requisição resulta na execução de um processoque é finalizado logo após sua execução.Para uma página mandar informações para uma outrahá as seguintes opções:Formulários HTMLCookiesSessões
  • 63. Dados entre páginasA técnica mais simples de passar dados entre páginasusa 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 docliente;O tamanho da URL é limitado, ficando inviável enviar muita informaçãovia GET.
  • 64. Dados entre páginasGET é muito usado para navegação (links).POSTPOST é a forma ideal de transmitir dados deformulá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 pelosbotões voltar e avançar no navegador;
  • 65. Dados entre páginasResumindo: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><?phpif (isset($_POST[nome])) {echo "Oi, {$_POST[nome]}.";echo "Você tem {$_POST[idade]} anos.";}?></body></html>
  • 71. Dados entre páginas_REQUESTConté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><?phpecho $_POST[username];echo $_REQUEST[username];?>