28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

download 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

of 67

Transcript of 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    1/67

     

    Introdução ao PHP online

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    2/67

    Introdução ao PHP online

    2

    Todos os direitos reservados para Alfamídia Prow.

    AVISO DE RESPONSABILIDADEAs informações contidas neste material de treinamento são distribuídas “NO ESTADO EMQUE SE ENCONTRAM”, sem qualquer garantia, expressa ou implícita. Embora todas as precauções tenham sido tomadas na preparação deste material, a Alfamídia Prow, não têmqualquer responsabilidade sobre qualquer pessoa ou entidade com respeito àresponsabilidade, perda ou danos causados, ou alegadamente causados, direta ouindiretamente, pelas instruções contidas neste material ou pelo software de computador e produtos de hardware aqui descritos.

    01/2012

    Alfamídia Prowhttp://www.alfamidia.com.br

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    3/67

    Introdução ao PHP online

    3

    Introdução ao PHP online

    UNIDADE 1 

    INTRODUÇÃO............................................................................................................................................ 5 

    1.1  CONTEÚDO DINÂMICO - CONCEITO .................................................................................................. 5 1.2  LINGUAGENS: ................................................................................................................................... 6 1.3  R ESUMO DA UNIDADE: ..................................................................................................................... 6 

    UNIDADE 2  O QUE É PHP............................................................................................................................................. 7 

    2.1  COMO CRIAR UM ARQUIVO PHP ....................................................................................................... 7 2.2  DELIMITANDO O CÓDIGO PHP .......................................................................................................... 8 2.3  DELIMITADORES ALTERNATIVOS ..................................................................................................... 8 

    UNIDADE 3 

    SINTAXE E ESTRUTURAS DE DADOS ................................................................................................. 10 

    3.1  OBJETIVOS DA U NIDADE ................................................................................................................ 10 3.2  SEPARADORES DE INSTRUÇÕES ...................................................................................................... 10 3.3  COMENTÁRIOS ............................................................................................................................... 11 3.4  ESTRUTURAS DE DADOS ................................................................................................................. 12 

    3.4.1 

    Variáveis ................................................................................................................................... 12 

    3.4.2 

    Constantes ................................................................................................................................ 12 

    3.4.3 

     Arrays .......... ........... .......... .......... ........... .......... ........... .......... ........... .......... .......... ........... .......... 13 

    3.5  R ESUMO DA U NIDADE .................................................................................................................... 15 

    UNIDADE 4  TIPOS DE DADOS ................................................................................................................................... 16 

    4.1  OBJETIVOS DA U NIDADE ................................................................................................................ 16 4.2  TIPOS SUPORTADOS ....................................................................................................................... 16 

    4.2.1 

    Strings ....................................................................................................................................... 16  

    4.2.2 

     Numéricos ........... .......... ........... .......... ........... .......... ........... .......... ........... .......... .......... ........... ... 17  

    4.2.3 

     Booleanos ........... .......... ........... .......... ........... .......... ........... .......... ........... .......... .......... ........... ... 18 

    4.3  CONVERSÃO DE TIPOS .................................................................................................................... 19 4.4  R ESUMO ......................................................................................................................................... 20 

    UNIDADE 5 

    OPERADORES ........................................................................................................................................ 21 

    5.1  OBJETIVOS DA U NIDADE ................................................................................................................ 21 5.2  OPERADORES ................................................................................................................................. 21 

    UNIDADE 6  ESTRUTURAS DE CONTROLE .............................................................................................................. 23 

    6.1  OBJETIVOS DA U NIDADE ................................................................................................................ 23 6.2  ESTRUTURAS DE CONTROLE .......................................................................................................... 23 

    6.2.1 

    Condicionais ............................................................................................................................. 23 

    6.2.2   Loops ......... ........... .......... ........... .......... ........... .......... .......... ........... .......... ........... .......... ........... . 26  

    6.3  R ESUMO DA U NIDADE .................................................................................................................... 30 

    UNIDADE 7  GERANDO HTML DINÂMICO ................................................................................................................. 31 

    7.1  OBJETIVOS DA U NIDADE ................................................................................................................ 31 7.2  COMANDOS DE ESCRITA ................................................................................................................. 31 

    7.2.1  echo .......................................................................................................................................... 31 

    7.2.2   print .................. ........... .......... ........... .......... .......... ........... .......... ........... .......... ........... .......... ..... 32 

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    4/67

    Introdução ao PHP online

    4

    7.3  FORMAS DE ESCRITA ...................................................................................................................... 32 7.3.1

     

     Em forma de string com interpolação ............. ........... .......... ........... .......... .......... ........... .......... 32 

    7.3.2 

     Em forma de string com concatenação .......... ........... .......... ........... .......... ........... .......... ........... . 33 

    7.3.3 

     Escape de caracteres .......... .......... ........... .......... .......... ........... .......... ........... .......... .......... ......... 33 

    7.4 

    R ESUMO DA U NIDADE .................................................................................................................... 34 

    UNIDADE 8 

    FUNÇÕES DE ARRAYS .......................................................................................................................... 35 

    8.1  OBJETIVOS DA U NIDADE ................................................................................................................ 35 8.2  CONTANDO ELEMENTOS EM UM ARRAY ......................................................................................... 35 8.3  DE ARRAYS PARA STRINGS E VICE-VERSA ...................................................................................... 36 8.4

     

    POPULANDO UM ARRAY ................................................................................................................. 37 

    8.4.1   Definindo elemento a elemento ........ .......... ........... .......... .......... ........... .......... .......... ........... ..... 37  

    8.5  R ESUMO DA U NIDADE .................................................................................................................... 38 

    UNIDADE 9 

    FORMULÁRIOS ....................................................................................................................................... 39 

    9.1  OBJETIVOS DA U NIDADE ................................................................................................................ 39 9.2  $_GET E $_POST .......................................................................................................................... 39 

    9.3 

    CRIANDO VARIÁVEIS DINÂMICAS ................................................................................................... 40 

    9.4 

    E NVIANDO UM E-MAIL SIMPLES ...................................................................................................... 41 

    UNIDADE 10 

    COOKIES ................................................................................................................................................. 42 

    10.1  OBJETIVOS DA U NIDADE ................................................................................................................ 42 10.2  O QUE SÃO COOKIES ...................................................................................................................... 42 10.3  GRAVANDO COOKIES ..................................................................................................................... 42 10.4  LENDO COOKIES GRAVADOS .......................................................................................................... 43 

    UNIDADE 11 

    HEADER ................................................................................................................................................... 45 

    11.1  OBJETIVOS DA U NIDADE ................................................................................................................ 45 11.2  I NTRODUÇÃO ................................................................................................................................. 45 11.3  SINTAXE:........................................................................................................................................ 45 11.4  UTILIZAÇÕES.................................................................................................................................. 45 

    UNIDADE 12 

    ACESSO A BANCO DE DADOS MYSQL ............................................................................................... 48 

    12.1  OBJETIVOS DA U NIDADE ................................................................................................................ 48 12.2  ESTABELECENDO CONEXÕES .......................................................................................................... 48 12.3  SELECIONANDO A BASE DE DADOS ................................................................................................. 49 12.4  R EALIZANDO CONSULTAS .............................................................................................................. 49 12.5  APAGANDO O RESULTADO .............................................................................................................. 49 12.6   NÚMERO DE LINHAS ....................................................................................................................... 49 12.7  UTILIZANDO OS RESULTADOS ........................................................................................................ 50 12.8  ALTERANDO O PONTEIRO DE UM RESULTADO ................................................................................. 50 12.9  EXEMPLO: CONEXÃO COM UM BANCO DE DADOS .......................................................................... 50 12.10

     

    EXEMPLO: CRIAÇÃO DE UMA TABELA............................................................................................ 51 

    12.11  EXEMPLO: FORMULÁRIO DE I NSERÇÃO DE DADOS ......................................................................... 52 

    12.12 

    EXEMPLO: PÁGINA DE AUTENTICAÇÃO .......................................................................................... 53 

    UNIDADE 13  APÊNDICE A: GUIA DE REFERÊNCIA RÁPIDA ................................................................................... 55 

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    5/67

    Introdução ao PHP online

    5

    Unidade 1

    Introdução1.1 Conteúdo Dinâmico - Conceito

    A linguagem HTML permite a criação de páginas para a Web contendo texto,imagens, etc, mas uma limitação desta linguagem é que não é possível produzirconteúdo que sofra mudanças de acordo com fatores externos.

    Para isso criou-se as linguagens conhecidas como Server side, ou seja, linguagensque são processadas no servidor web e nos permitem uma gama de recursos queaté então não existiam, como por exemplo:

    - Utilização de variáveis

    - Processamento de dados de formulários

    - Acesso a bancos de dados

    Quando navegamos por um site chamado estático, ou seja, com conteúdo imutável,a cada clique disparamos o seguinte processo:

    1- O navegador solicita ao servidor uma página HTML.

    2- O servidor procura por este arquivo e o retorna para o navegador.

    Agora veja a diferença quando navegamos por um site com conteúdo dinâmico:

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    6/67

    Introdução ao PHP online

    6

    1. O navegador solicita ao servidor um arquivo de linguagem server side.

    2. O servidor procura por este arquivo e passa para o interpretador destalinguagem, que processa os comandos contidos neste arquivo.

    3. Após o processamento o interpretador retorna para o servidor Web o resultadodeste processamento, formatado em HTML.

    4. O Servidor então, retorna ao navegador este resultado.

    1.2 Linguagens:

    Entre as linguagens mais populares atualmente no desenvolvimento de sitesdinâmicos podemos citar o ASP (Active Server Pages, mantido pela Microsoft),JSP (Java Server Pages, mantido pela SUN) e o PHP (PHP HypertextPreprocessor, mantido pelo PHP Group).

    1.3 Resumo da unidade:

    - Websites dinâmicos possuem como principal característica páginas que têmconteúdos que podem variar de acordo com fatores externos ao código HTML.

    - As duas principais linguagens utilizadas no desenvolvimento de websitesdinâmicos são o ASP, da Microsoft e o PHP, do PHP Group.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    7/67

    Introdução ao PHP online

    7

    Unidade 2

    O que é PHPPHP é uma linguagem server side que foi criada originalmente pelo programadorRasmus Lerdorf para utilização em seu site pessoal. Originalmente a sigla queriadizer Personal Home Page, significado que demonstrava bem que a linguagemainda dava seus primeiros e despretensiosos passos.

    A linguagem que mais influenciou o PHP foi à linguagem Perl, utilizada no inícioda web principalmente para o tratamento de dados de formulários com os famosos“scripts CGI”. 

    Após a adição de um pacote para tratamento de dados de formulário e outro que

    dava suporte à conexão com bancos de dados mSQL (miniSQL), a linguagem foidisponibilizada para o público e passou a receber contribuições de diversos programadores.

    A primeira versão do PHP utilizada em larga escala foi à versão 3, que emboracontendo pequenos bugs, já era utilizada por milhares de websites.

    Hoje o PHP se encontra na versão 5 e possui suporte à conexão com os maisdiversos bancos de dados, Orientação a Objetos, geração dinâmica de gráficos,LDAP, XML, etc...

    2.1 Como criar um arquivo PHPPor ser uma linguagem interpretada, um arquivo PHP nada mais é do que umarquivo texto. Devido a esta característica, um arquivo PHP pode ser criado em praticamente qualquer editor disponível no mercado, desde os mais avançados atéos mais simples, como o Bloco de Notas.

    Todo arquivo PHP deve possuir a extensão .php, para possibilitar ao servidor webdistingui-lo dos demais arquivos (HTML, JavaSript, XML, etc...).

    É esta extensão que permite ao servidor web “saber” que este arquivo deve serrepassado ao interpretador PHP antes de retornar o resultado para o navegador.

    Mas não basta que informemos ao servidor web que este arquivo deve ser passado para o interpretador, devemos informar ao interpretador que partes deste arquivodevem ser processadas como código PHP, o que nos leva ao nosso próximo tópico:

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    8/67

    Introdução ao PHP online

    8

    2.2 Delimitando o código PHP

    Vejamos a diferença de uma página HTML comum, que cumprimenta o usuário

    que está entrando em nosso site, e uma página PHP que fará a mesma coisa, porémchamando o usuário pelo seu nome. Não se preocupe neste momento com sintaxee comandos PHP. Este exemplo apenas ilustra a utilização de delimitadores.

    Exemplo 1: index.html

    Teste 1

     

    Olá, Usuário!

    Exemplo 2: index.php 

    Teste 1

       

     Olá,  !

     Note que temos dois pares de tags que não são HTML, representados pela tag. Tudo o que estiver entre estas duas tags éautomaticamente processado pelo interpretador PHP como código, enquanto que orestante é tratado como HTML comum, e por conseqüência, ignorado pelointerpretador.

    2.3 Delimitadores alternativos

    Embora as tags de delimitação de código PHP que são utilizadas como padrão pelos programadores sejam as tags , o interpretador reconhece comoválidas as seguintes alternativas:

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    9/67

    Introdução ao PHP online

    9

    -

     Não recomendável pela possibilidade de confusão com arquivos XML, que possuem uma tag que inicia exatamente pelos caracteres < e ?.

    -

     Não recomendável pela possibilidade de confusão com arquivos ASP, que utilizamexatamente à mesma notação.

    - e  

     Não recomendável por se tratar da notação padrão para scripts client side (que sãoexecutados no lado cliente), como JavaScript, por exemplo.

    A não ser que haja um forte motivo para utilizar um dos delimitadores acima,recomendamos enfaticamente o uso dos delimitadores padrão: .

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    10/67

    Introdução ao PHP online

    10

    Unidade 3

    Sintaxe e Estruturas de Dados3.1 Objetivos da Unidade

    Após completar esta unidade você será capaz de:

    - Compreender a forma de sintaxe da linguagem PHP

    - Compreender as diferentes estruturas de dados da linguagem e como elas sãorepresentadas.

    3.2 Separadores de instruções

    Existem duas formas de separar instruções em PHP:

    - Para separar linhas de comandos utilizamos o ponto e vírgula, como no exemploabaixo:

    Exemplo: Delimitando comandos

    - Para delimitar blocos de códigos em Estruturas de Controle (que veremos maisadiante) utilizamos chaves:

    Exemplo: Delimitando blocos

    if ($usuario == „Paulo‟) { 

    echo “Olá, $usuario!”; }

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    11/67

    Introdução ao PHP online

    11

     Note que o comando que define o bloco de código não é terminado por ponto evírgula.

    3.3 Comentários

    Comentários servem, principalmente para auxiliar o programador ou à equipe de programadores a se orientar dentro de um código e para ajudar na tarefa de debugde um arquivo PHP. Comentários são absolutamente ignorados pelo interpretador.

    Existem duas formas de comentários disponíveis em PHP:

    - Comentários de uma linha ou linhas comentadas: São comentários curtos quecomeçam e terminam na mesma linha. Para comentar uma linha utilizamos duas barras:

    Exemplo: Comentário de uma linha

    Comentários em mais de uma linha, ou blocos comentados: São comentários maisextensos, utilizados para grandes descrições ou para anular a execução de uma

    série de linhas de código. Para isso utilizamos uma notação semelhante à tagsHTML: iniciamos o comentário por uma barra e um asterisco e o finalizamos comum asterisco e uma barra:

    Exemplo: Bloco comentado

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    12/67

    Introdução ao PHP online

    12

    3.4 Estruturas de dados

    Estruturas de dados podem ser entendidas como “compartimentos” que nos

     permitem armazenar informações. Utilizamos estruturas de dados para que possamos trabalhar mais de uma vez com o mesmo dado em um programa.

    Em PHP existem três estruturas básicas de dados, que veremos com mais detalhesa seguir:

    - Variáveis

    - Constantes

    - Arrays

    3.4.1 Variáveis

    Variáveis são a estrutura de dados mais comumente utilizada. Uma variável é umaestrutura de dado que nos permite guardar apenas um valor por vez. Variáveis,assim como os arrays em PHP são denominadas pelo sinal de dólar.

    Veja o exemplo, ainda utilizando a variável $usuario:

    Exemplo: Utilizando variáveis

    Exercícios: 

    1) Crie uma variável para armazenar o seu nome.

    2) No mesmo arquivo crie outras duas variáveis, uma para armazenar sua idade eoutra o seu e-mail.

    3.4.2 Constantes

    Constantes, ao contrário das variáveis, são estruturas de dados cujo valor édefinido apenas uma vez, não podendo ser modificado. Embora o PHP aceite o

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    13/67

    Introdução ao PHP online

    13

    nome de constante escrito em caracteres minúsculos, é uma boa prática de programação definirmos o nome de uma constante sempre utilizando apenascaracteres maiúsculos.

    Constantes são declaradas através do comando define, com a seguinte sintaxe:

    define(nome_da_constante, valor  [, insensibilidade_à_caixa]);

    Veja o exemplo:

    Exemplo: Declarando constantes

    O parâmetro insensibilidade_à_caixa, que tem como parâmetros possíveis TRUE(verdadeiro) ou FALSE (falso) é opcional. Por default este parâmetro é TRUE, ouseja, a constante deve ser chamada sempre se respeitando maiúsculas eminúsculas.

     Na segunda linha de nosso exemplo, a constante pode ser chamada de qualquerforma  –   Pais, PAIS, pais, PaIs, etc...  –   enquanto que na primeira linha ointerpretador PHP só reconhecerá a constante se ela for chamada exatamente como

    foi definida, ou seja, toda em caixa alta.

    Exercícios: 

    1) Crie uma constante para armazenar o idioma utilizado no seu site.

    2) Com base no exercício anterior responda: É possível alterar o valor destaconstante após a sua criação?

    3.4.3 ArraysArrays são matrizes, estruturas de dados chamada compostas, pois têm comocaracterística a possibilidade de armazenar mais de um dado ao mesmo tempo.Estes dados são acessados através do que chamamos de índice.

    Em PHP os arrays são definidos de uma forma mista: ao mesmo tempo em quedeclaramos o nome do array com o sinal de dólar, devemos utilizar o comandoarray para indicar que esta estrutura é de fato uma matriz.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    14/67

    Introdução ao PHP online

    14

    Veja o exemplo de uma definição de array:

    Exemplo: Definindo um array

     Neste exemplo definimos um array chamado usuarios contendo dois elementos:Paulo e João. Como não definimos explicitamente os índices deste array, eles sãoautomaticamente definidos pelo interpretador de acordo com a ordem doselementos.

    É importante notar que, ao contrário do uso coloquial, o primeiro elemento de um

    array ordenado é sempre definido pelo índice zero. Caso queiramos chamar umelemento específico deste array, João, por exemplo, utilizamos a seguinte notação:

    $nome_do_array[indice];

    Assim sendo nosso exemplo de saudação ao usuário, utilizando um array, poderiaser escrito da seguinte forma:

    Exemplo: Acessando um elemento de um array

    Teste 1

      Olá, !

    Podemos também criar o que chamamos de arrays associativos, ou seja, arrays

    cujo índice é explicitamente definido por nós:

    Exemplo: Declarando um array associativo

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    15/67

    Introdução ao PHP online

    15

    Costa‟); ?>

    E para chamarmos algum dos elementos deste array utilizamos exatamente à

    mesma forma mencionada anteriormente:Exemplo: Acessando um elemento de um array associativo

    Exercícios:

    1) Crie um array contendo os dias da semana, começando por “Domingo” e

    terminando em “Sábado”. 

    2) Tomando o array acima como base, que índice representaria a “Segunda -feira”?Que índice representaria o “Domingo”? 

    3) Quantos elementos o array de dias da semana contém?

    3.5 Resumo da Unidade

    - Para delimitarmos comandos em PHP utilizamos o ponto e vírgula, enquanto que para blocos de códigos em estruturas de controle usamos as chaves.

    - Comentários em PHP são marcados por duas barras quando forem comentáriosde apenas uma linha ou delimitados por barra e asterisco e asetrisco e barra quandoforem comentários em mais de uma linha.

    - Em PHP possuímos três estruturas básicas de dados: Variáveis, Constantes eArrays, sendo estes últimos chamados de estruturas compostas, pois podemarmazenar mais de um dado ao mesmo tempo. Todas as estruturas de dados emPHP são representadas pelo sinal de dólar.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    16/67

    Introdução ao PHP online

    16

    Unidade 4

    Tipos de Dados4.1 Objetivos da Unidade

    Após completar esta unidade você será capaz de:

    - Identificar e compreender os principais tipos de dados utilizados em PHP

    - Realizar a conversão do tipo de dado de uma variável

    4.2 Tipos Suportados

    Existem 3 tipos básicos suportados pelo interpretador PHP:

    - Strings ou texto.

    - Numéricos –  inteiros e de ponto flutuante.

    - Booleanos

    Veremos a seguir cada um destes tipos com maiores detalhes.

    4.2.1 Strings

    Strings podem ser compreendidas como texto. Este texto pode conter qualquer tipode caractere, sejam números, letras, acentos, caracteres especiais, etc.

    Strings são sempre delimitadas por aspas, que podem ser tanto duplas quantosimples. Os dois exemplos abaixo são variáveis que contém strings em seu valor:

    Exemplo: Declarando strings

    A diferença no uso das aspas simples ou duplas está na forma como o interpretadorPHP tratará o conteúdo da string. No caso das aspas duplas poderá ocorrer o que

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    17/67

    Introdução ao PHP online

    17

    chamamos de interpolação, ou seja, se uma string contiver uma variável, ointerpretador PHP automaticamente converterá a variável para seu valor. As aspasduplas também permitem ao interpretador reconhecer caracteres especiais, como o

    caractere de nova linha, por exemplo. No caso da utilização de aspas simples a interpolação não ocorre, assim como nãoocorre o reconhecimento de caracteres especiais. Veja o seguinte exemplo parauma melhor compreensão das diferenças:

    Exemplo: Utilização de aspas simples e duplas

    O primeiro comando echo resultará no texto:

    Isto é um teste

    Enquanto que o segundo produzirá como resultado:

    Isto é um $var1

    Exercícios: 

    1) Crie uma variável $texto contendo a string “teste”. 

    2) Exiba a frase “A variável $texto contém o valor teste”.  

    4.2.2 Numéricos

     Numéricos são os tipos que representam números. São eles:

    - Inteiros

    - De ponto flutuante, também conhecidos como float ou double.

    Tipos numéricos são representados pela ausência de aspas:

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    18/67

    Introdução ao PHP online

    18

    Exemplo: Declarando variáveis numéricas 

    Exercícios: 

    1) Crie uma variável contendo como valor a sua idade.

    2) Crie uma variável contendo como valor o CEP de onde você mora.

    4.2.3 Booleanos

    Um tipo booleano é o que representa apenas dois valores possíveis: verdadeiro oufalso. Normalmente estes valores são representados pelas palavras reservadasTRUE e FALSE:

    Exemplo: Declarando uma variável booleana

    É importante ressaltar que o interpretador PHP sempre considerará um valor comosendo verdadeiro, a não ser nos seguintes casos:

    - O booleano FALSE

    - O inteiro 0 (zero)

    - O float 0.0

    - A string vazia „‟ ou “” 

    - A string “0” ou „0‟ 

    - Um array vazio

    Exercícios: 

    1) Crie uma variável com valor verdadeiro.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    19/67

    Introdução ao PHP online

    19

    2) Crie três outras variáveis, falsas, utilizando formas diferentes de representar acondição de falsidade.

    4.3 Conversão de tipos

    A exemplo de outras linguagens web, PHP procura fazer a conversão de tiposautomaticamente.

    Exemplo: conversão automática de tipos

     Neste exemplo nossa variável $var1 começa contendo uma string. Na segundalinha ela passa a conter um inteiro, enquanto que a partir da terceira linha seu valor passa a ser um float.

    Também é possível alterar o tipo de dado de uma variável utilizando-se o comandosettype, que possui a seguinte sintaxe:

    settype(variável , tipo);

    O parâmetro tipo deve conter um destes possíveis valores:

    - Boolean

    - integer

    - float

    - string

    Sendo assim, nosso exemplo de transformação de tipos poderia ser reescrito de

    forma à não ser necessário modificar o valor da variável:

    Exemplo: modificando o tipo de uma variável com a função settype

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    20/67

    Introdução ao PHP online

    20

    settype($var1, „float‟); ?>

    Exercícios: 

    1) Crie uma variável contendo um valor string representando a sua idade.

    2) Exiba conteúdo desta variável somado ao número 15.

    3) A variável utilizada nos exercícios anteriores é verdadeira ou falsa?

    4) Converta esta variável para o tipo float, sem alterar o seu valor.

    4.4 Resumo

    - PHP suporta os seguintes tipos básicos: string, numérico e booleano.

    - Para realizar a conversão entre tipos efetuamos operações com a variável ouutilizamos o comando settype.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    21/67

    Introdução ao PHP online

    21

    Unidade 5

    Operadores5.1 Objetivos da Unidade

    Ao completar esta unidade você será capaz de:

    - Conhecer os operadores disponíveis em PHP

    5.2 Operadores

    Existe uma variedade de operadores que podem ser utilizados em PHP. Veja agorauma referência sobre eles:

    Operador Operação

    Matemáticos

    + Adição

    - Subtração

    * Multiplicação

    / Divisão% Módulo (resto de divisão)

    Atribuição

    = Atribuição

    Comparação

    == Igualdade

    === Igualdade estrita (não apenas testa os valores,mas também o tipo de dado entre oselementos comparados).

    != ou Diferente!=== Diferença estrita (Ou os valores ou os tipos de

    dados são diferentes).

    < Menor que

    > Maior que

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    22/67

    Introdução ao PHP online

    22

    >= Maior ou igual que

    Incremento / Decremento

    ++ Incremento-- Decremento

    Lógicos

    and ou && Verdadeiro se ambos os lados foremverdadeiros

    or ou || Verdadeiro se qualquer um dos lados forverdadeiro

    xor Verdadeiro se qualquer um dos lados forverdadeiro, mas não ambos

    ! Negação: Verdadeiro se o elemento não forverdadeiro

    String

    . Concatenação

    .= Concatenação e atribuição

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    23/67

    Introdução ao PHP online

    23

    Unidade 6

    Estruturas de Controle6.1 Objetivos da Unidade

    Após completar esta unidade você será capaz de:

    - Compreender as estruturas de controle em PHP

    - Controlar o funcionamento de um programa PHP

    6.2 Estruturas de Controle

    Estruturas de controle são comandos que nos permitem controlar a forma comonosso programa será executado. Existem dois tipos de estruturas de controle:

    - Condicionais

    - Loops

    Veremos agora cada uma das estruturas com mais detalhes.

    6.2.1 Condicionais

    Estruturas condicionais, como o próprio nome já diz, são estruturas que impõemuma condição para que um ou mais comandos sejam executados.São elas:

    i f

    Sintaxe:

    if (condição) { comandos 

    }

    Descrição:

    O if é a estrutura condicional mais simples. Os comandos contidos no blocodelimitado pelas chaves só serão executados no caso da condição ser verdadeira.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    24/67

    Introdução ao PHP online

    24

    Exemplo: Utilizando uma condicional if  

    if ($usuario == „Paulo‟) { echo “Olá, Paulo.”; 

    }

    O if suporta, ainda, múltiplas condições e o que fazer se a condição for falsa. Isto éfeito através das condições else if e else:

    if (condição1) { 

    comandos } else if (condição2) { 

    comandos } else { 

    comandos } 

    Exercícios: 

    1) Crie uma variável do tipo string. Teste o valor desta variável.

    2) Crie uma variável numérica. Teste se este valor é maior do que 5. Em caso positivo some o número 10 a este valor. Em caso negativo subtraia o número 3.

    Switch

    Sintaxe:

    switch(variável)

    {case valor1:

    comandosbreak;

    case valor2:comandosbreak;

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    25/67

    Introdução ao PHP online

    25

    default:comandos

    }

    Descrição:

    O condicional switch é comumente utilizado para evitar instruções if-else if muitolongas, ou seja, quando queremos testar uma gama muito grande de condições.

    Cada instrução case testa pela igualdade da variável com o valor. Note que alimitação que ocorre com o condicional switch é que apenas a igualdade é testada.A instrução break é obrigatória entre cases, pois é ela que separa os blocos deinstruções que serão executadas dependendo de cada condição.

    A instrução default é opcional e diz para o interpretador PHP o que fazer se todasas condições expostas nas instruções case forem falsas.

    Exemplo: Utilizando uma condicional switch

    switch($usuario){

    case „Paulo‟: echo “Olá Paulo.”; 

    break;

    case „João‟: echo “Olá João”; break;

    default:echo “Usuário desconhecido”; 

    }

    Exercícios:1) Crie uma variável numérica. Utilizando o comando switch teste se este valor éigual a 0. Em caso positivo converta a variável para string. Em todos os outroscasos converta esta variável para o tipo float.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    26/67

    Introdução ao PHP online

    26

    6.2.2 Loops

    Loops são estruturas que causam a repetição de uma série de instruções

    dependendo ou não de uma condição. São elas:

    fo r

    Sintaxe:

    for (inicialização_variável; condição_variável; operação) { 

    comandos } 

    Descrição:

    Um loop for é uma estrutura de controle que causará a repetição de comandos comum número finito de iterações. Para isso criamos uma variável contadora, testamosuma condição e a incrementamos ou decrementamos para que o loop tenhacontinuidade.

    Exemplo: Utilizando um loop for

    for ($c = 0; $c < 10; $c++) 

    { echo “Esta é a $c ª iteração de nosso loop de

    exemplo.”; }

    Em nosso exemplo teremos 10 iterações em nosso loop (de 0 a 9).

    Exercícios:

    1) Faça um loop que conte um valor numérico de 0 a 10.

    2) Quantas iterações o loop acima fará?

    While

    Sintaxe:

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    27/67

    Introdução ao PHP online

    27

     while(condição) { 

    comandos 

    }

    Descrição:

    Um loop while é executado quantas vezes forem necessárias até que a condiçãoespecificada seja satisfeita (seja verdadeira).

    Exemplo: Utilizando um loop while

    $c = 0; 

     while ($c < 10) { 

    echo “Esta é a $c ª iteração de nosso loop deteste.”; 

    $c++; }

     Note que para reproduzir o comportamento de nosso loop for com um loop while precisamos incluir duas instruções explícitas:

     Na primeira linha inicializamos nossa variável com o valor zero. Se esta linha

    estivesse dentro do bloco a ser executado pelo loop teríamos o que chamamos deloop infinito, pois a cada iteração a variável seria reinicializada com o valor zero e portanto seria sempre menor do que 10.

     Na última linha de nosso bloco de instruções incrementamos a variável (oequivalente à operação $c = $c + 1;). Se esta linha estivesse fora do bloco a serexecutado pelo loop também teríamos um loop infinito, pois o incremento jamaisaconteceria e a variável seria sempre menor do que 10.

    Exercícios: 

    1) Refaça o loop que conta de 0 a 10 utilizando o comando while.

    2) Por que precisamos manipular o valor de uma variável dentro de um loopwhile?

    do-while

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    28/67

    Introdução ao PHP online

    28

    Sintaxe:

    do

    {  comandos }  while (condição)

    Descrição:

    O loop do-while é extremamente parecido com o loop while, mas possui umadiferença importantíssima: o bloco de comandos será executado sempre pelomenos uma vez, já que a condição é testada apenas no final da primeira iteração.

    Exemplo: Utilizando um loop do-while

    $c = 0; do{ 

    echo “Esta é a $c ª iteração de nosso loop deteste.”; 

    $c++; }  while ($c < 10)

     Note que se tivéssemos inicializado a nossa variável contadora com o valor 1 etestássemos à condição $c < 1 ainda assim teríamos uma execução do loop, pois acondição só começa a ser testada após a primeira iteração.

    Exercícios: 

    1) Faça novamente o loop contador, desta vez utilizando os comandos do-while.

    2) Qual a diferença entre um loop while e um do-while?

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    29/67

    Introdução ao PHP online

    29

    Foreach

    Sintaxe1:

    foreach (array as var_elemento){

    comandos}

    Sintaxe2:

    foreach (array as var_indice => var_elemento){

    comandos}

    Descrição:

    O loop foreach é uma estrutura de controle que serve especificamente para percorrer um array, elemento a elemento. Na sintaxe1 criamos uma variável paraarmazenar temporariamente o valor de cada elemento do array a cada iteração doloop. Na sintaxe2 criamos uma variável para armazenar temporariamente o valordo índice de cada elemento do array e outra para armazenar temporariamente ovalor de cada elemento do array a cada iteração do loop.

    Exemplo1: Utilizando um loop foreach simples

    $usuarios = array(„Paulo‟, „João‟); 

    foreach($usuarios as $usuario){

    echo “Usuário encontrado: $usuario”; }

    Exemplo2: Utilizando um loop foreach capturando índices e valores

    $usuario = array(„Nome‟ => „Paulo‟, Idade => 20); 

    foreach($usuario as $campo => $valor){

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    30/67

    Introdução ao PHP online

    30

    echo “$campo: $valor”; }

    Exercícios:

    1) Altere o array de dias da semana para que este contenha as abreviaturas(“Dom”, “Seg”, etc...) como índices. Feito isto faça um loop que mostre os dias dasemana e suas respectivas abreviaturas.

    2) Altere este loop de forma que ele exiba apenas as abreviaturas.

    6.3 Resumo da Unidade

    Estruturas de controle nos permitem controlar a execução do nosso programa.

    Elas podem ser condicionais (testam uma condição pré-definida) ou loops(executam instruções repetidamente).

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    31/67

    Introdução ao PHP online

    31

    Unidade 7

    Gerando HTML dinâmico7.1 Objetivos da Unidade

    Após completar esta unidade você será capaz de:

    - Gerar HTML dinâmico.

    - Compreender as diversas formas de se escrever conteúdo em uma páginadinâmica

    7.2 Comandos de escrita

    PHP possui dois comandos básicos de escrita, também chamados de comandos desaída ou exibição de dados. São eles:

    7.2.1 echo

    Sintaxe:

    echo string1 [, string2, string3 ... ];

    Descrição:

    O comando echo escreve em tela uma ou mais strings.

    Exemplo: Utilizando o comando echo

    echo “Olá “, $usuario;

    Exercícios:

    1) Exiba o valor de uma variável qualquer formatado em uma fonte arial detamanho 2 e cor vermelha.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    32/67

    Introdução ao PHP online

    32

    7.2.2 print

    Sintaxe:

     print (string ); 

    Descrição:

    Assim como o comando echo, o comando print também escreve uma string. Adiferença básica entre eles é que enquanto o echo aceita mais de uma string como parâmetro, o print aceita apenas uma.

    Exemplo: Utilizando o comando print

     print (“Olá, $usuario” ); 

    7.3 Formas de escrita

     Note que para escrever HTML utilizando-se PHP basta fazer com que o seu programa dê saída em tags HTML. Existem três formas básicas de se escreverformatação HTML e dados de saída utilizando-se PHP. São elas:

    7.3.1 Em forma de string com interpolação

    Esta é a forma mais simples de escrevermos. Utilizamos uma string simples,delimitada com aspas duplas, possibilitando a interpolação de variáveis.

    Exemplo: comando echo com interpolação de variáveis

    $usuario = „Paulo‟; 

    $dia = „Segunda-feira‟; 

    echo “Bom dia, $usuario.
    Hoje é $dia.”; 

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    33/67

    Introdução ao PHP online

    33

    7.3.2 Em forma de string com concatenação

    Esta é a forma preferida quando trabalhamos com arrays. Embora o interpretador

    PHP faça a interpolação de elementos de array com índices numéricos, um erroocorre ao se tentar fazer o mesmo com arrays que possuam índices string. Por estemotivo preferimos utilizar o operador de concatenação quando trabalhamos comarrays, sejam seus índices numéricos ou string.

    Exemplo: comando echo com concatenação

    $usuarios = array(„Paulo‟, „João‟); 

    echo “Olá, “.$usuarios[0]; 

    Exercícios: 

    1) Crie um script PHP que exiba parte de uma página html na forma simples docomando echo;

    2) Inclua neste arquivo um array de “configuração” da página, contendo valores para cor de fundo, cor de texto e tipo de fonte. Aplique estas configuraçõesvariáveis no código HTML da página.

    7.3.3 Escape de caracteres

    Quando utilizamos as duas primeiras formas de escritas tratadas neste capítulodevemos fazer o escape de quaisquer aspas que sejam as mesmas que utilizamos para delimitar o que será exibido. Outra forma de contornar o problema éutilizando-se o tipo de aspas contrário ao que estamos utilizando como delimitaçãodo que será exibido.

    Assim sendo nosso exemplo poderia ser reescrito de duas formas diferentes:

    Exemplo1: Escapeando caracteres

    $usuario = „Paulo‟; 

    echo “

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    34/67

    Introdução ao PHP online

    34

    color=\”#FF0000\”> Olá, $usuario.”; 

    Exemplo2: Alternando aspas

    $usuario = „Paulo‟; 

    echo “Olá, $usuario.”; 

    Exercícios: 

    1) Qual a diferença de utilizar aspas simples ou duplas?

    2) Porque utilizamos caracteres escapeados dentro de uma string PHP?

    7.4 Resumo da Unidade

    - Em PHP utilizamos os comandos echo e print para escrever código HTML e/oudados de saída em uma página.

    - Para dar saída em HTML e/ou dados podemos usar a simples interpolaçãofornecida pelo interpretador produzindo um echo como aspas duplas ou utilizarconcatenação.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    35/67

    Introdução ao PHP online

    35

    Unidade 8

    Funções de Arrays8.1 Objetivos da Unidade

    Após completar esta unidade você será capaz de:

    - Manipular arrays com PHP

    8.2 Contando elementos em um array

    Para sabermos quantos elementos existem em um array utilizamos à função count:

    count (array  [, modo]); 

    Exemplo: Retornando o número de elementos em um array

    $numero_usuarios = count ($usuarios);

    O parâmetro modo é opcional e pode conter um dos seguintes valores:

    1 ou COUNT_RECURSIVE  –  Conta recursivamente o número de elementos emum array multidimensional.

    0 (zero) –  É o modo default, ou seja, faz a contagem de forma não-recursiva, sendoo array multidimensional ou não.

    Obtendo-se o número de elementos de um array temos condições de percorrer umarray com um loop for, no lugar do tradicional foreach:

    Exemplo: percorrendo um array com um loop for

    for ($c = 0; $c < count($usuarios); $c++){

    echo “Olá, “.$usuarios[$c].”
    ”; }

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    36/67

    Introdução ao PHP online

    36

     Note que esta forma de percorrer um array, ao contrário do loop foreach, sófuncionará com arrays de índices numéricos.

    Exercícios:

    1) Quantas iterações um loop for teria que fazer para percorrer um array de 5elementos?

    2) Qual seria o índice numérico do último elemento deste array hipotético?

    8.3 De arrays para strings e vice-versa

    Para transformarmos um array em uma string utilizamos à função implode:

    implode (caractere_de_cola, array ); 

    Exemplo: convertendo um array em string

    $str_usuarios = implode („;‟, $usuarios); 

     Neste exemplo a variável $str_usuarios conterá uma string com todos os elementosdo array usuarios separados por ponto e vírgula (o caractere escolhido para “colar”os elementos do nosso array).

    O caminho inverso é alcançado através da função explode:

    explode (caractere_separador, string [, limite]);

    Exemplo: Convertendo uma string em array

    $usuarios = explode(„;‟, $str_usuarios);

    O parâmetro limite é opcional e é numérico. Se especificado, o array retornadoterá como número máximo de elementos o número informado no parâmetro limite,

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    37/67

    Introdução ao PHP online

    37

    sendo que o último elemento do array conterá o restante da string que não foi“explodido”. 

    Exercícios:

    1) Utilizando o array de dias da semana que criamos anteriormente, faça um scriptPHP que transforme este array em string e exiba o resultado em tela.

    8.4 Populando um array

    Existem três formas de se popular um array em PHP:

    8.4.1 Definindo elemento a elemento

    Podemos definir cada elemento do array com um comando simples de atribuição:

    Exemplo: populando um array elemento a elemento

    $usuarios = array();

    $usuarios[0] = „Paulo‟; 

    $usuarios[1] = „João‟; 

    Utilizando um loop for

    Exemplo: populando um array através de um loop for

    $usuarios = array();

    for ($c = 0; $c < 10; $c++){

    $usuarios[$c] = „Teste‟; }

    Utilizando a função array_fill

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    38/67

    Introdução ao PHP online

    38

    array_fill (início, quantidade, valor ); 

    Exemplo: populando um array com a função array_fill 

    $usuarios = array_fill (0, 10, „Teste‟); 

     Note que utilizando esta função não precisamos declarar a variável como array.

    Exercícios: 

    1) Crie três arrays e insira em cada um deles 2 elementos, utilizando as três formasdescritas para popular arrays.

    2) Extraia o 2º elemento de cada um dos arrays criados e exiba o resultado em tela.

    8.5 Resumo da Unidade

    Para descobrirmos o número de elementos em um array utilizamos à função count.

    As funções implode e explode realizam, respectivamente, a transformação de umarray em uma string e a transformação de uma string em um array.

    Para preenchermos um array podemos fazê-lo elemento a elemento, utilizando umloop for ou a função array_fill.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    39/67

    Introdução ao PHP online

    39

    Unidade 9

    Formulários9.1 Objetivos da Unidade

    Após completar esta unidade você será capaz de:

    - Processar dados enviados por um formulário HTML

    9.2 $_GET e $_POST

    Quando submetemos os dados de um formulário para um programa PHPautomaticamente temos disponível um array especial contendo os nomes doscampos preenchidos pelo usuário e os valores por ele digitados.

     No caso do formulário ter sido submetido pelo método GET este array se chamará$_GET, enquanto que se o método utilizado foi POST este array será o $_POST.

     Neste array cada índice será o nome do campo, enquanto que o elemento em siserá o que foi preenchido pelo usuário.

    Tomemos como exemplo um formulário HTML simples:

    Exemplo: um formulário HTML

    Formulário de Testes

     Digite seu nome:  
     

    Ao enviar este formulário teremos disponível, para uso em nosso programa processa.php um array $_POST contendo um elemento, cujo índice será nome e o

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    40/67

    Introdução ao PHP online

    40

    elemento em si será o que o usuário digitou. Veja um exemplo simples do arquivo processa.php:

    Exemplo: processando dados recebidos de um formulário

     Note que o primeiro teste que fazemos é verificar se o formulário realmente foienviado, ou seja, se o array $_POST contém elementos.

    Exercício de fixação

    Sabendo que os dados de um formulário são armazenados em um array e baseando-se no que já vimos sobre arrays desenvolva um programa que exibatodos os dados preenchidos por um usuário em um formulário HTML.

    9.3 Criando variáveis dinâmicas

    Uma forma de facilitar o trabalho com dados de formulário é utilizar um truque para transformar cada elemento de um array $_POST ou $_GET em uma variávelque terá como nome o índice do elemento  –   ou seja o nome do campo deformulário –  e como valor o que foi preenchido pelo usuário.

    Exemplo: criando variáveis dinâmicas a partir dos dados de um formulário

     Note a linha negritada. Ao utilizar dois sinais de dólar estamos informando aointerpretador PHP que, para cada elemento de nosso array (foreach), ele deve

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    41/67

    Introdução ao PHP online

    41

    automaticamente utilizar o índice deste elemento para dar nome a uma variável, eautomaticamente atribuir a esta variável o elemento em si.

    9.4 Enviando um e-mail simples

    E-mails são enviados através da função mail:

     mail ( para, assunto, mensagem);

    Exemplo: enviando um e-mail

    mail („[email protected]‟, „Isto é um teste‟, „Testando a função de envio de e-mails em PHP‟); 

    Exercício de fixação

    Utilizando concatenação, construa uma variável que contenha todos os dados preenchidos pelo usuário em um formulário e a envie por e-mail.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    42/67

    Introdução ao PHP online

    42

    Unidade 10

    Cookies10.1 Objetivos da Unidade

    Após completar essa unidade, você será capaz de:

    - Gravar e Ler Cookies

    10.2 O que são Cookies

    Cookies são variáveis gravadas no cliente(browser) por um determinado site.Somente o site que gravou o cookie pode ler a informação contida nele.

    Este recurso é muito útil para que determinadas informações sejam fornecidas pelousuário apenas uma vez. Um uso muito comum de cookies é na autenticação deusuários, pois não faz sentido exigir que o usuário se identifique em cada páginaque ele acessa, por isso um cookie costuma ser utilizado para indicar que aqueleusuário já se identificou e quem ele é.

    Existem cookies persistentes e cookies de sessão. Os persistentes são aquelesgravados em arquivo, e que permanecem após o browser ser fechado, e possuemdata e hora de expiração. Os cookies de sessão não são armazenados em disco e

     permanecem ativos apenas enquanto a sessão do browser não for encerrada.Por definição, existem algumas limitações para o uso de cookies, listadas a seguir:

    - 300 cookies no total

    - 4 kilobytes por cookie.

    - 20 cookies por servidor ou domínio.

    10.3 Gravando cookies

    Para gravar cookies no cliente, deve ser utilizada a função setcookie, que possui aseguinte assinatura:

    int setcookie(string nome, string valor, int exp,string path, string dominio, int secure);

    onde:

    nome: nome do cookie;

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    43/67

    Introdução ao PHP online

    43

    valor: valor armazenado no cookie;

    exp: data de expiração do cookie (opcional), no formato Unix. Se não for definida,o cookie será de sessão;

    path: path do script que gravou o cookie;

    dominio: domínio responsável pelo cookie;

    secure: se tiver valor 1, indica que o cookie só pode ser transmitido por umaconexão segura (https).

    Observações:

    Um cookie não pode ser recuperado na mesma página que o gravou, a menos queesta seja recarregada pelo browser.

    Múltiplas chamadas à função setcookie serão executadas em ordem inversa;Cookies só podem ser gravados antes do envio de qualquer informação para ocliente. Portanto todas as chamadas à função setcookie devem ser feitas antesdo envio de qualquer header ou texto.

    10.4 Lendo cookies gravados

    Os cookies lidos por um script PHP ficam armazenados em duas variáveis. noarray $_COOKIE, tendo como índice a string do nome do cookie, e numa variável

    cujo nome é o mesmo do cookie, precedido pelo símbolo $.Exemplo:

    Um cookie que foi gravado numa página anterior pelo seguinte comando:

    setcookie(“teste”, “meu cookie”); 

    Pode ser lida pela variável

    $_COOKIE[“teste”] 

    Exemplo Autenticação Utilizando Cookies

    Arquivo cookie1.php

    Autenticação

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    44/67

    Introdução ao PHP online

    44

     

    Formulário de login.

    Entre com seu e-mail e senha

    E-mail:
     

    Senha:  

     

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    45/67

    Introdução ao PHP online

    45

    Unidade 11

    Header11.1 Objetivos da Unidade

    Após completar essa unidade, você será capaz de:

    - Alterar informações do Cabeçalho do HTML

    11.2 Introdução

    O comando header permite enviar cabeçalhos html para o cliente. Deve serutilizado por usuários que conheçam a função de cada header que pode serenviado. Não pode ser enviado depois de algum texto. Veja o seguinte exemplo:

    ...

    O código acima causará um erro, já que se tentou enviar um header depois de tersido enviado um texto(“”). 

    11.3 Sintaxe:

    A sintaxe do comando header é bastante simples:

    int header(string header);

    11.4 Utilizações

    Algumas utilizações do header são:

    //redirecionar para outra página:

    header("Location: http://www.php.net");

    http://www.php.net/http://www.php.net/

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    46/67

    Introdução ao PHP online

    46

    // Definir o script como uma mensagem de erro:

    header("http/1.0 404 Not Found");

    // Definir a expiração da página:

    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1

    header("Pragma: no-cache"); // HTTP/1.0

    Exemplo - Utilizando Headers para Redirecionar Páginas

    Uma situação comum de se encontrar em sites é o redirecionamento paradeterminada página de acordo com a ação do usuário. Neste exemplo veremos umredirecionamento de acordo com o formulário.

    Arquivo redir1.php

    Redirecionamento

    Formulário de Redirecionamento

    Alfamídia

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    47/67

    Introdução ao PHP online

    47

    Corel

     

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    48/67

    Introdução ao PHP online

    48

    Unidade 12

    Acesso a Banco de Dados MySql12.1 Objetivos da Unidade

    Após completar essa unidade, você será capaz de:

    - Conectar com Banco de Dados Mysql e Realizar Consultas e Alterações nosDados.

    12.2 Estabelecendo conexões

    Para acessar bases de dados num servidor mySQL é necessário antes estabeleceruma conexão. Para isso, deve ser utilizado o comando mysql_connect, ou omysql_pconnect. A diferença entre os dois comandos é que o mysql_pconnectestabelece uma conexão permanente, ou seja, que não é encerrada ao final daexecução do script. As assinaturas dos dois comandos são semelhantes, como podeser verificado a seguir:

    int mysql_connect(string [host[:porta]], string [login], string [senha] );

    int mysql_pconnect(string [host[:porta]], string

    [login], string [senha] );

    O valor de retorno é um inteiro que identifica a conexão, ou falso se a conexãofalhar. Antes de tentar estabelecer uma conexão, o interpretador PHP verifica se jáexiste uma conexão estabelecida com o mesmo host, o mesmo login e a mesmasenha. Se existir, o identificador desta conexão é retornado. Senão, uma novaconexão é criada.

    Uma conexão estabelecida com o comando mysql_connect  é encerrada aofinal da execução do script. Para encerrá-la antes disso deve ser utilizado ocomando mysql_close, que tem a seguinte assinatura:

    int mysql_close(int [identificador da conexão] );

    Se o identificador não for fornecido, a última conexão estabelecida será encerrada.

    IMPORTANTE: o comando mysql_close não encerra conexões estabelecidascom o comando mysql_pconnect.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    49/67

    Introdução ao PHP online

    49

    12.3 Selecionando a base de dados

    Depois de estabelecida à conexão, é preciso selecionar a base de dados a ser

    utilizada, através do comando mysql_select_db, que segue o seguintemodelo:

    int mysql_select_db(string base, int [conexao] );

     Novamente, se o identificador da conexão não for fornecido, a última conexãoestabelecida será utilizada.

    12.4 Realizando consultas

    Para executar consultas SQL no mySQL, utiliza-se o comando mysql_query,

    que tem a seguinte assinatura:int mysql_query(string query, int [conexao] );

    Onde query é a expressão SQL a ser executada, sem o ponto-e-vírgula no final, econexao é o identificador da conexão a ser utilizada. A consulta será executada na base de dados selecionada pelo comando mysql_select_db.

    É bom lembrar que uma consulta não significa apenas um comando SELECT. Aconsulta pode conter qualquer comando SQL aceito pelo banco.

    O valor de retorno é falso se a expressão SQL for incorreta, e diferente de zero sefor correta. No caso de uma expressão SELECT, as linhas retornadas são

    armazenadas numa memória de resultados, e o valor de retorno é o identificadordo resultado. Alguns comandos podem ser realizados com esse resultado:

    12.5 Apagando o resultado

    int mysql_free_result(int result);

    O comando mysql_free-result deve ser utilizado para apagar da memória oresultado indicado.

    12.6 Número de linhas

    int mysql_num_rows(int result);

    O comando mysql_num_rows retorna o número de linhas contidas num resultado.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    50/67

    Introdução ao PHP online

    50

    12.7 Utilizando os resultados

    Existem diversas maneiras de ler os resultados de uma query SELECT. As mais

    comuns serão vistas a seguir:int mysql_result(int result, int linha, mixed [campo]);

    Retorna o conteúdo de uma célula da tabela de resultados.

    result é o identificador do resultado;

    linha é o número da linha, iniciado por 0;

    campo  é uma string com o nome do campo, ou um número correspondente ao

    número da coluna. Se for utilizado um alias na consulta, este deve ser utilizado nocomando mysql_result.

    Este comando deve ser utilizado apenas para resultados pequenos. Quando ovolume de dados for maior, é recomendado utilizar um dos métodos a seguir:

    array mysql_fetch_array(int result);

    Lê uma linha do resultado e devolve um array, cujos índices são os nomes doscampos. A execução seguinte do mesmo comando lerá a próxima linha, até chegarao final do resultado.

    array mysql_fetch_row(int result);

    Semelhante ao comando anterior, com a diferença que os índices do array sãonuméricos, iniciando pelo 0 (zero).

    12.8 Alterando o ponteiro de um resultado

    int mysql_data_seek(int result, int numero);

    Cada resultado possui um “ponteiro”, que indica qual será a próxima linha lidacom o comando mysql_fetch_row (ou mysql_fetch_array). Para alterara posição indicada por esse ponteiro deve ser utilizada a função

    mysql_data_seek, sendo que o número da primeira linha de um resultado ézero.

    12.9 Exemplo: Conexão com um Banco de Dados

    Este primeiro exemplo apenas estabelece a conexão com um banco de dados jáexistente, sendo passados o codinome e senha na conexão e em seguida

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    51/67

    Introdução ao PHP online

    51

    selecionada a base de dados. Observe o uso do comando die  para informar ousuário do erro ocorrido.

    Arquivo conexao.php

    Criando Tabelas

    Conexão efetuada com sucesso! 

    12.10 Exemplo: Criação de uma Tabela

    Este exemplo, também bastante simples, apenas cria uma tabela. Observe que se atabela já existe é retornado um erro.

    Arquivo tabelas.php

    Criando Tabelas

    Criação de tabela efetuada com sucesso.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    52/67

    Introdução ao PHP online

    52

    12.11 Exemplo: Formulário de Inserção de Dados

     Neste exemplo criaremos um formulário para inserção de dados na tabela criada

    no exemplo anterior. O programa exibe, abaixo do formulário, a lista de todos oselementos incluídos na tabela.

    Arquivo cadastro.php

    Armazenando Dados

     

    Formulário de Entrada de Dados.


    Cadastre um novo usuario:
    Nome:  


    E-mail:  


    Senha:  


     

    Arquivo grava.php

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    53/67

    Introdução ao PHP online

    53

    ?> 

    Arquivo consulta.php

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    54/67

    Introdução ao PHP online

    54

    Formulário de login.

    Entre com seu e-mail e senha

    E-mail:
     

    Senha:
     

     

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    55/67

    Introdução ao PHP online

    55

    Unidade 13

    Apêndice A: Guia de Referência Rápida

    Funções para Tratamento de Strings

    Funções Relacionadas à HTML

    HTMLspecialchars

    string htmlspecialchars(string str);

    Retorna a string fornecida, substituindo os seguintes caracteres:

    & para '&'

    " para '"'

    < para '<'> para „>' 

    htmlentities

    string htmlentities(string str);

    Funciona de maneira semelhante ao comando anterior, mas de maneira maiscompleta, pois converte todos os caracteres da string que possuem umarepresentação especial em html, como por exemplo:

    º para 'º'

     ª para 'ª'á para 'á'

    ç para „ç' 

    nl2br

    string nl2br(string str);

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    56/67

    Introdução ao PHP online

    56

    Retorna a string fornecida substituindo todas as quebras de linha (“\n”) porquebras de linhas em html (“
    ”). 

    echo nl2br(“Mauricio\nVivas\n”); 

    Imprime:

    Maurício
    Vivas

    get_meta_tags

    array get_meta_tags(string arquivo);

    Abre um arquivo html e percorre o cabeçalho em busca de “meta” tags, retornandonum array todos os valores encontrados.

     No arquivo teste.html temos:

    ...

    ...

    ...

    a execução da função:

    get_meta_tags(“teste.html”); 

    retorna o array:

    array(“author”=>”jose”,”tags”=>"php3 documentation"); 

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    57/67

    Introdução ao PHP online

    57

    strip_tags

    string strip_tags(string str);

    Retorna a string fornecida, retirando todas as tags html e/ou PHP encontradas.

    strip_tags('testando
    ');

    Retor na a string “testando” 

    urlencode

    string urlencode(string str);

    Retorna a string fornecida, convertida para o formato urlencode. Esta função é útil para passar variáveis para uma próxima página.

    urldecode

    string urldecode(string str);

    Funções Relacionadas à Arrays

    implode e join

    string implode(string separador, array partes);

    string join(string separador, array partes);

    As duas funções são idênticas. Retornam uma string contendo todos os elementosdo array fornecido separados pela string também fornecida.

    $partes = array("a", "casa número", 13, "é azul");

    $inteiro = join(" ",$partes);

    $inteiro passa a conter a string:

    “a casa número 13 é azul” 

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    58/67

    Introdução ao PHP online

    58

    split

    array split(string padrao, string str, int [limite]);

    Retorna um array contendo partes da string fornecida separadas pelo padrãofornecido, podendo limitar o número de elementos do array.

    $data = “11/14/1975”; 

    $data_array = split(“/”,$data); 

    O código acima faz com que a variável $data_array receba o valor:

    array(11,14,1975);

    explode

    array explode(string padrao, string str);

    Funciona de maneira bastante semelhante à função split, com a diferença quenão é possível estabelecer um limite para o número de elementos do array.

    Comparações entre strings

    similar_text

    int similar_text(string str1,string str2[,double porcentagem]);

    Compara as duas strings fornecidas e retorna o número de caracteres coincidentes.

    Opcionalmente pode ser fornecida uma variável, passada por referência (ver tópico sobre funções), que receberá o valor percentual de igualdade entre as strings. Estafunção é case sensitive, ou seja, maiúsculas e minúsculas são tratadas comodiferentes.

    $num = similar_text("teste", "testando",&$porc);

    As variáveis passam a ter os seguintes valores:

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    59/67

    Introdução ao PHP online

    59

    - $num == 4; $porc == 61.538461538462

    strcasecmp

    int strcasecmp(string str1, string str2);

    Compara as duas strings e retorna 0 (zero) se forem iguais, um valor maior quezero se str1 > str2, e um valor menor que zero se str1 < str2. Estafunção é case insensitive, ou seja, maiúsculas e minúsculas são tratadas comoiguais.

    strcmp

    int strcasecmp(string str1, string str2);

    Funciona de maneira semelhante à função strcasecmp, com a diferença queesta é case sensitive, ou seja, maiúsculas e minúsculas são tratadas comodiferentes.

    á para 'á'

    ç para „ç' 

    strstr

    string strstr(string str1, string str2);

    string strchr(string str1, string str2);

    As duas funções são idênticas. Procura a primeira ocorrência de str2 em str1.Se não encontrar, retorna uma string vazia, e se encontrar retorna todos oscaracteres de str1 a partir desse ponto.

    strstr("Mauricio Vivas", "Viv"); // retorna “Vivas” 

    stristr

    string strstr(string str1, string str2);

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    60/67

    Introdução ao PHP online

    60

    Funciona de maneira semelhante à função strstr, com a diferença que esta écase insensitive, ou seja, maiúsculas e minúsculas são tratadas como iguais.

    strpos

    int strpos(string str1, string str2, int [offset] );

    Retorna a posição da primeira ocorrência de str2  em str1, ou zero se nãohouver. O parâmetro opcional offset determina a partir de qual caracter de str1será efetuada a busca. Mesmo utilizando o offset, o valor de retorno é referente aoinício de str1.

    strrpos

    int strrpos(string haystack, char needle);

    Retorna a posição da última ocorrência de str2 em str1, ou zero se não houver.

    Funções para Edição de Strings

    chop

    string chop(string str);

    Retira espaços e linhas em branco do final da string fornecida.

    chop(“ Teste \n \n “); // retorna “ Teste” 

    ltrim

    string ltrim(string str);

    Retira espaços e linhas em branco do final da string fornecida.

    ltrim(“ Teste \n \n “); // retorna “Teste \n \n” 

    trim

    string trim(string str);

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    61/67

    Introdução ao PHP online

    61

    Retira espaços e linhas em branco do início e do final da string fornecida.

    trim(“ Teste \n \n “); // retorna “Teste” 

    strrev

    string strrev(string str);

    Retorna a string fornecida invertida.

    strrev(“Teste”); // retorna “etseT” 

    strtolower

    string strtolower(string str);

    Retorna a string fornecida com todas as letras minúsculas.

    strtolower(“Teste”); // retorna “teste” 

    strtoupper

    string htmlentities(string str);

    Funciona de maneira semelhante ao comando anterior, mas de maneira maiscompleta, pois converte todos os caracteres da string que possuem umarepresentação especial em html, como por exemplo:

    ucfirst

    string ucfirst(string str);

    Retorna a string fornecida com o primeiro caracter convertido para letramaiúscula.

    ucfirst(“teste de funcao”); // retorna “Teste de funcao” 

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    62/67

    Introdução ao PHP online

    62

    ucwords

    string ucwords(string str);

    Retorna a string fornecida com todas as palavras iniciadas por letras maiúsculas.

    ucwords(“teste de funcao”); // retorna “Teste De Funcao”  

    str_replace

    string str_replace(string str1, string str2, string str3);

    Altera todas as ocorrências de str1 em str3 pela string str2.

    Funções diversas

    chr

    string chr(int ascii);

    Retorna o caracter correspondente ao código ASCII fornecido.

    ord

    int ord(string string);

    Retorna o código ASCII correspondente ao caracter fornecido.

    echo

    echo(string arg1, string [argn]... );

    Imprime os argumentos fornecidos.

    print

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    63/67

    Introdução ao PHP online

    63

     print(string arg);

    Imprime o argumento fornecido.

    strlen

    int strlen(string str);

    Retorna o tamanho da string fornecida.

    Funções para Tratamento de Arrays

    Funções Genéricas

    array 

    array array(...);

    É a função que cria um array a partir dos parâmetros fornecidos. É possívelfornecer o índice de cada elemento. Esse índice pode ser um valor de qualquertipo, e não apenas de inteiro. Se o índice não for fornecido o PHP atribui um valorinteiro seqüencial, a partir do 0 ou do último índice inteiro explicitado. Vejamosalguns exemplos:

    $teste = array("um", "dois","tr"=>"tres",5=>"quatro","cinco");

    Temos o seguinte mapeamento:

    0 => “um” (0 é o primeiro índice, se não houver um explicito) 

    1 => “dois” (o inteiro seguinte) “tr” => “tres” 

    5 => “quatro” (valor explicitado) 

    6 => “cinco” (o inteiro seguinte ao último atribuído, e não o próximo valor, queseria 2)

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    64/67

    Introdução ao PHP online

    64

    Exemplo 2

    $teste = array("um", 6=>"dois","tr"=>"tres",5=>"quatro","cinco");

    Temos o seguinte mapeamento:

    0 => “um” 

    6 => “dois” 

    “tr” => tres 

    5 => “quatro” (seria 7, se não fosse explicitado)

    7 => “cinco” (seria 6, se não estivesse ocupado)  

    Em geral, não é recomendável utilizar arrays com vários tipos de índices, já queisso pode confundir o programador. No caso de realmente haver a necessidade deutilizar esse recurso, deve-se ter bastante atenção ao manipular os índices do array.

    range

    array range(int minimo, int maximo);

    A função range cria um array cujos elementos são os inteiros pertencentes aointervalo fornecido, inclusive. Se o valor do primeiro parâmetro for maior do que odo segundo, a função retorna false (valor vazio).

    shuffle

    void shuffle(array &arr);

    Esta função “embaralha” o array, ou seja, troca as posições dos elementosaleatoriamente e não retorna valor algum.

    sizeof

    int sizeof(array arr);

    Retorna um valor inteiro contendo o número de elementos de um array. Se forutilizada com uma variável cujo valor não é do tipo array, retorna 1. Se a variávelnão estiver setada ou for um array vazio, retorna 0.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    65/67

    Introdução ao PHP online

    65

    Funções de “navegação” 

    Toda variável do tipo array possui um ponteiro interno indicando o próximoelemento a ser acessado no caso de não ser especificado um índice. As funções

    seguintes servem para modificar esse ponteiro, permitindo assim percorrer umarray para verificar seu conteúdo (chaves e elementos).

    reset

    mixed reset(array arr);

    Seta o ponteiro interno para o primeiro elemento do array, e retorna o conteúdodesse elemento.

    endmixed end(array arr);

    Seta o ponteiro interno para o último elemento do array, e retorna o conteúdodesse elemento.

    next

    mixed next(array arr);

    Seta o ponteiro interno para o próximo elemento do array, e retorna o conteúdodesse elemento.

    Obs.: esta não é uma boa função para determinar se um elemento é o último doarray, pois pode retornar false tanto no final do array como no caso de haverum elemento vazio.

    prev

    mixed prev(array arr);

    Seta o ponteiro interno para o elemento anterior do array, e retorna o conteúdodesse elemento. Funciona de maneira inversa a next.

    pos

    mixed pos(array arr);

    Retorna o conteúdo do elemento atual do array, indicado pelo ponteiro interno.

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    66/67

    Introdução ao PHP online

    66

    key

    mixed key(array arr);

    Funciona de maneira bastante semelhante à pos, mas ao invés de retornar oelemento atual indicado pelo ponteiro interno do array, retorna seu índice.

    each

    echo(string arg1, string [argn]... );

    Imprime os argumentos fornecidos

    Funções de Ordenação

    São funções que servem para arrumar os elementos de um array de acordo comdeterminados critérios. Estes critérios são: manutenção ou não da associação entreíndices e elementos; ordenação por elementos ou por índices; função decomparação entre dois elementos.

    sort

    void sort(array &arr);

    A função mais simples de ordenação de arrays. Ordena os elementos de um arrayem ordem crescente, sem manter os relacionamentos com os índices.

    rsort

    void rsort(array &arr);

    Funciona de maneir ainversa à função sort. Ordena os elementos de um array emordem decrescente, sem manter os relacionamentos com os índices.

    asort

    void asort(array &arr);

    Tem o funcionamento bastante semelhante à função sort. Ordena os elementosde um array em ordem crescente, porém mantém os relacionamentos com osíndices.

    arsort

  • 8/18/2019 28 Introdução Ao PHP [Versão 2012-01] - Alfamídia

    67/67

    Introdução ao PHP online

    void arsort(array &arr);

    Funciona de maneira inversa à função asort. Ordena os elementos de um arrayem ordem decrescente e mantém os relacionamentos dos elementos com osíndices.

    ksort

    void rsort(array &arr);

    Funciona de maneir ainversa à função sort. Ordena os elementos de um array emordem decrescente, sem manter os relacionamentos com os índices.

    usort

    void usort(array &arr, function compara);

    Esta é uma função que utiliza outra função como parâmetro. Ordena os elementosde um array sem manter os relacionamentos com os índices, e utiliza para efeito decomparação uma função definida pelo usuário, que deve comparar dois elementosdo array e retornar 0, 1 ou  – 1, de acordo com qualquer critério estabelecido pelousuário.

    uasort

    void uasort(array &arr, function compara);

    Esta função também utiliza outra função como parâmetro. Ordena os elementos deum array e mantém os relacionamentos com os índices, utilizando para efeito decomparação uma função definida pelo usuário, que deve comparar dois elementosdo array e retornar 0, 1 ou  – 1, de acordo com qualquer critério estabelecido pelousuário.

    uksort

    void uksort(array &arr, function compara);