Você está na página 1de 296

PROGRAMAÇÃO EM PHP

PROGRAMAÇÃO EM PHP

AULA 01

INSTALANDO E CONFIGURANDO UM SERVIDOR WEB.

Nessa primeira aula veremos como instalar e configurar um servidor Web.


Mas antes de qualquer coisa, precisamos saber o que é um servidor
Web e como ele funciona.
Os servidores web são responsáveis por armazenar e trocar
informações com outras máquinas.
Por causa disso, pelo menos dois participantes são envolvidos em cada
troca de informações: um cliente, que solicita informações, e um servidor, que
atende a esses pedidos.

Cada lado exige também um programa especializado para negociar a


troca de dados; no caso do cliente, um browser como a Internet Explorer é
usado.

No lado de servidor, porém, as coisas não são tão simples. Existe uma
miríade de opções de software disponível, mas todos têm uma tarefa
semelhante: negociar transferências de dados entre clientes e servidores via
http (Protocolo de Transferência de Hipertexto), o protocolo de comunicações
da Web.

O software depende do sistema operacional escolhido para o servidor.


Por exemplo, o IIS da Microsoft é uma escolha popular para Windows, já os fãs
do Unix escolhem o Apache.

Uma comunicação simples entre o cliente e o servidor Web funciona da


seguinte
forma:

1. O browser do cliente decompõe a URL (o endereço da página) em


várias partes separadas, tais como o nome de domínio, nome da
página e protocolo.

Para a URL http://www.google.com.br/imghp, o nome de domínio é


www.google.com.br, o nome da página é imghp e o protocolo é o http.

2. Um Servidor de Nome de Domínio (DNS) traduz o nome de


domínio informado pelo para seu endereço de IP, uma combinação numérica
que representa o endereço real do site na Internet (um nome de domínio é
somente uma ferramenta para facilitar a memória). Por exemplo, o domínio
google.com.br é traduzido para o endereço IP real 74.125.234.116 O que você
acha mais fácil de lembrar?

3. O browser agora determina que protocolo deve ser usado. Os


exemplos de protocolos incluem FTP (Protocolo de Transferência de Arquivo),
e http (Protocolo de Transferência de HiperTexto).

2
PROGRAMAÇÃO EM PHP

4. O servidor passa então a recuperar os arquivos solicitados na


página.

Por exemplo, quando um usuário digitar:


http://www.google.com.br/imghp

O browser solicita o arquivo imghp do servidor google.com.br e aguarda


uma resposta. O servidor então responde os pedidos do browser. Verifica se o
endereço existe, encontra os arquivos necessários, executa as instruções
apropriadas e retorna para os resultados de volta para o browser. Se não puder
localizar o arquivo, o servidor envia a uma mensagem de erro para o cliente.

5. O browser recebe os dados do servidor na linguagem HTML,


interpreta essas instruções e exibe os resultados para o usuário.

Esse processo é repetido até que o browser deixe o site.

Além de suas funções listadas acima, o servidor de Web cuida também


de outras tarefas. Considerando que um Web Browser simplesmente traduz e
exibe os dados alimentados, um servidor de Web é responsável por distinguir
entre vários tipos de erros e dados. Um servidor de Web deve, por exemplo,
designar o código apropriado para qualquer erro interno e enviar de volta para
o Browser logo depois dele acontecer.

Tem que distinguir também entre vários elementos em uma página de


Web (como .GIFs, JPEGS etc.) de forma que o browser sabe que arquivos usar
na hora formatar a página.

Dependendo da função do site, um servidor de Web pode também tratar


de tarefas adicionais, como registro de estatísticas, segurança de manipulação
e criptografia, servir imagens para outros sites (para imagens, mapas, etc),
gerenciador de conteúdo dinâmico ou funções de comércio eletrônico.

Agora você tem uma ideia de como funciona um servidor web e das
etapas envolvidas na exibição das páginas de seu site.

Nessa primeira aula iremos começar uma série de conteúdos para


aqueles interessados em aprender a linguagem de programação para Web
PHP.
PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor",
originalmente Personal Home Page.) é uma linguagem interpretada livre e
utilizada para gerar conteúdo dinâmico na World Wide Web.

3
PROGRAMAÇÃO EM PHP

As principais características do PHP são:

Velocidade e robustez;
Estruturado e orientado a objeto;
Portabilidade – roda em qualquer lugar;
Tipagem fraca;
Sintaxe similar a C/C++.

INSTALAÇÃO DO SERVIDOR
Para que possamos executar nossas páginas e códigos PHP em nosso
computador, temos que ter um servidor instalado. Para isso utilizaremos neste
curso o EasyPHP.

O EasyPHP é uma distribuição de fácil uso para Windows que contém o


PHP, Apache e o MySQL, contendo também o PHPMyAdmin para o usuário
administrar facilmente o MySQL.

Ele é um WAMP (pacote de soluções para Windows, Apache, MySQL e


PHP) programa que instala em pequenos passos um servidor WEB Apache,
um módulo para programação em PHP e o MySQL (Banco de Dados), também
instala o módulo de administração de Banco de Dados phpMyAdmin. Podemos
dizer que ele é um “pequeno notável”. A vantagem de sua utilização na
plataforma Windows é primordialmente trabalhar com programação em PHP
sem se preocupar com os passos necessários para a configuração de um
servidor Apache, e servidores de Banco de Dados.

Primeiramente você deve solicitar ao seu instrutor o instalador do


EasyPHP.

4
PROGRAMAÇÃO EM PHP

Execute o EasyPHP, a primeira tela que você terá acesso será uma
similar a essa abaixo, onde você deverá selecionar o idioma, já está marcado
Inglês, portanto, clique em OK.

Você iniciará o assistente para configuração do EasyPHP. Clique em Next.

Agora você pode visualizar o Contrato de Licença do EasyPHP,


selecione a opção Eu aceito os termos de Contrato e logo em seguida clique
em Next.

Você visualizará uma tela de informações, clique em Next.

5
PROGRAMAÇÃO EM PHP

Agora você pode escolher onde irá instalar o EasyPHP, nós usaremos o
diretório padrão de instalação, portanto apenas clique em Next.

Agora devemos selecionar a pasta do menu iniciar, mais uma vez, apenas
clique em Next.

6
PROGRAMAÇÃO EM PHP

Agora você visualizará a tela que nos avisa que o EasyPHP está pronto
para ser instalado, caso as configurações estejam de acordo com seu gosto,
clique em Install.

Aguarde a instalação terminar e desmarque a opção visualizar ajuda,


logo em seguida clique em Finish.

Perceba agora que nosso EasyPHP já está rodando.

Clicando com o botão direito nele é possível ver todas as opções e


configurações.
Clique com o botão direito no ícone e logo em seguida clique em localhost.

7
PROGRAMAÇÃO EM PHP

Aqui você poderá visualizar tudo que for criado em php e colocado dentro
do diretório www.do EasyPHP. Como não temos nenhum arquivo no diretório
www, não há nenhuma opção nesta tela de localhost.
Agora você possui um servidor web com Apache, PHP e MySQL
instalado em seu computador. Sempre que for escrever alguma página ou
script PHP, salve o conteúdo na pasta www, execute o EasyPHP, e escreva
localhost em seu navegador para testa-lo.

Estudando o mundo da Programação.


Vamos estudar de maneira global o mundo da programação de páginas
web.
Para isso começaremos estudando rapidamente alguns conceitos
básicos, que certamente muitos já saberão, como o marco onde a web se
desenvolve, o que é uma página web, como se constrói uma página e a
linguagem HTML.
Ademais veremos o que é uma página estática e dinâmica distinguindo
entre páginas dinâmicas de cliente e servidor.
Vamos nos deter com maior profundidade na apresentação de cada uma
das linguagens que temos a nossa disposição para construir páginas web,
marcados no âmbito onde se executam: cliente ou servidor.

Introdução à web:
A web se enquadra dentro da Internet, não é mais que um serviço dos
muitos que presta a Rede, entre os que podemos encontrar:
• Correio eletrônico
• IRC ou chat
• FTP
• A própria web

Web é um sistema Hipertexto/Hipermídia


O sistema com o qual está construído a web se chama hipertexto e é um
emaranhado de páginas conectadas por links.
Os sistemas de hipertexto se utilizam em outros contextos à parte da
web, com a ajuda do Windows.

8
PROGRAMAÇÃO EM PHP
São muito fáceis de utilizar e também é muito fácil encontrar o que
buscamos rapidamente, basta clicarmos em links e acessarmos a informação
que mais nos interessa.
A web não só se limita a apresentar textos e links, também pode nos
oferecer imagens, vídeos, áudio e todo tipo de apresentações, chegando a ser
o serviço mais rico em meios que tem a Internet.
Por esta razão, para nos referir ao sistema que implementa o web
(hipertexto), foi acunhado um novo termo que é hipermídia, referente a
possibilidade do adendo de conteúdos multimídia.

Linguagem HTML
Vemos uma página web em nosso navegador, ou cliente web, e parece
uma só entidade, mas não é assim, está composta por uma infinidade de
diferentes arquivos, como são as imagens, os possíveis vídeos e o mais
importante: o código fonte.
O código das páginas está escrito em uma linguagem chamada HTML,
que indica basicamente onde colocar cada texto, cada imagem ou cada vídeo e
a forma que terão ao serem colocados na página.
O HTML se criou a princípio com objetivos de divulgação.
Porém, não se pensou que a web chegaria a ser uma área de ócio com
caráter multimídia, de modo que, o HTML se criou sem dar respostas a todos
os possíveis usos que lhe dariam posteriormente e ao todo coletivo de gente
que o utilizariam no futuro.
A linguagem consta de etiquetas que tem esta forma <B> ou <P>. Cada
etiqueta significa uma coisa, por exemplo, <B> significa que se escreve em
negrito (bold) ou <P> significa um parágrafo, <A> é um link, etc.
Quase todas as etiquetas têm sua correspondente etiqueta de
fechamento, que indica que a partir deste ponto não deve afetar o código.
Por exemplo,</B> se utiliza para indicar que se deixe de escrever em
negrito.
Portanto, o HTML não é mais que uma série de etiquetas que se utilizam
para definir a forma ou o estilo que queremos aplicar ao nosso documento.
<B>Isto está em negrito</B>.

Partes de um documento HTML


Um documento HTML deve estar delimitado pela etiqueta <html> e
</html>.
Dentro deste documento, podemos ainda distinguir duas partes
principais: O cabeçalho, delimitado por <head> e </head> onde colocaremos
etiquetas de índole informativa, como por exemplo, o título de nossa página.
O corpo, delimitado pelas etiquetas <body> e </body>, que será onde
colocaremos nosso texto e imagens delimitados por sua vez por outras
etiquetas como as que vimos anteriormente.

Páginas Estáticas VS Dinâmicas


Na web podemos encontrar, ou construir, dois tipos de páginas:

• As que se apresentam sem movimento e sem funcionalidades além dos


links.

• As páginas que têm efeitos especiais e nas quais podemos interagir.


As primeiras páginas são as que denominamos páginas estáticas, se
constroem com a linguagem HTML, que não permite grandes manobras para
9
PROGRAMAÇÃO EM PHP

criar efeitos nem funcionalidades maiores além dos links.


Estas páginas são muito fáceis de criar, embora ofereçam poucas
vantagens tanto aos que desenvolvem a página como aos visitantes, já que só
podem apresentar textos planos acompanhados de imagens e no máximo
conteúdos multimídia como podem ser vídeos ou áudios.

O segundo tipo de páginas se denomina página dinâmica. Uma página é


dinâmica quando se inclui qualquer efeito especial ou funcionalidade, e para
isso é necessário utilizar outras linguagens de programação, à parte do simples
HTML.
Enquanto as páginas estáticas todo mundo pode imaginá-las e não
merecem mais explicações, as páginas dinâmicas são mais complexas e
versáteis.
Para esclarecer este conceito, veremos com detalhe a seguir o que são
as páginas dinâmicas.

Páginas Dinâmicas:
Como vimos, uma página é dinâmica quando realiza efeitos especiais ou
programa alguma funcionalidade ou interatividade.
Ademais, vimos que para programar uma página dinâmica,
necessitaremos de outras linguagens a parte do HTML.
Entretanto, nunca devemos esquecer o HTML, já que este é à base do
desenvolvimento web: geralmente ao escrever uma página dinâmica o código
das outras linguagens de programação se inclui embebida dentro do mesmo
código HTML.
Uma razão pela qual construiremos uma página dinâmica é o simples
visual que podem alcançar os trabalhos, já que podemos fazer apresentações
mais interessantes das que se conseguem utilizando unicamente HTML.
Porém vamos ver com calma algumas razões menos óbvias, mas mais
importantes. Suponhamos que decidimos realizar um portal de televisão onde
uma das informações principais a prover poderia ser a programação semanal.
Efetivamente, esta informação costuma ser dada pelas televisões com
meses de antecedência e poderia ser muito facilmente armazenada em uma
base de dados.
Se trabalhássemos com páginas HTML, teríamos que construir uma
página independente para cada semana na qual introduziríamos "a mão" cada
um dos programas de cada um dos canais.
Ainda assim, teríamos que lembrarmos a cada semana de remover a
página da semana passada e colocar a da anterior. Tudo isto poderia ser
facilmente resolvido mediante páginas dinâmicas.
Neste caso, o que faríamos seria criar um programa (somente um) que
se encarregaria de recolher da base de dados da programação aqueles
programas que são retransmitidos nas datas que nos interessa e de
confeccionar uma página onde apareceria ordenado por canais e por hora de
retransmissão.
Deste modo, podemos automatizar um processo e já não nos
preocuparmos mais de um aspecto da página por alguns meses.
Poderíamos aplicar este tipo de procedimento em outras situações:
podemos preparar o horóscopo de todos os dias, as promoções de um site de
e-comercio...

10
PROGRAMAÇÃO EM PHP
Podemos fazer uma classificação às páginas dinâmicas em função de
onde se realiza o processamento da página, ou seja, o computador que se
encarregará do peso adicional.

Páginas dinâmicas de cliente:


São as páginas dinâmicas que se processam no cliente. Nestas páginas,
toda a carga de processamento dos efeitos e funcionalidades é suportada pelo
navegador.
Usos típicos das páginas de cliente são efeitos especiais para webs
como rollovers ou controle de janelas, apresentações nas quais se podem
mover objetos pela página, controle de formulários, cálculos, etc.
O código necessário para criar os efeitos e funcionalidades se inclui
dentro do mesmo arquivo HTML e é chamado SCRIPT.
Quando uma página HTML contém scripts de cliente, o navegador se
encarrega de interpretá-los e executá-los para realizar os efeitos e
funcionalidades.
As páginas dinâmicas de cliente se escrevem em duas linguagens de
programação principalmente: Javascript e Visual Basic Script (VBScript), que
veremos detalhadamente mais adiante. Também veremos o conceito de
DHTML e conheceremos as CSS.
Nota: Flash é uma tecnologia e um programa, para criar efeitos
especiais em páginas web. Com Flash também conseguimos fazer páginas
dinâmicas do lado do cliente.
As páginas do cliente são muito dependentes do sistema onde estão se
executando.
E essa é sua principal desvantagem, já que cada navegador tem suas
próprias características, inclusive cada versão, e o que pode funcionar em um
navegador pode não funcionar em outro.
Como vantagem pode-se dizer que estas páginas baixam ao servidor
alguns trabalhos, oferecem respostas imediatas às ações do usuário e
permitem a utilização de alguns recursos da máquina local.

Páginas dinâmicas de servidor:


Podemos falar também de páginas dinâmicas do servidor, que são
reconhecidas, interpretadas e executadas pelo próprio servidor.
As páginas do servidor são úteis em muitas ocasiões. Com elas pode-se
fazer todo tipo de aplicações web. Desde agendas a fóruns, sistemas de
documentação, estatísticas, jogos, chats, etc.
São especialmente úteis em trabalhos que tem de se acessar a
informação centralizada, situada em uma base de dados no servidor, e quando
por razões de segurança os cálculos não podem se realizar no computador do
usuário.
É Importante destacar que as páginas dinâmicas de servidor são
necessárias porque para fazer a maioria das aplicações web deve-se ter
acesso a muitos recursos externos ao computador do cliente, principalmente
bases de dados hospedadas em servidores de Internet.
Um caso claro é um banco: não tem nenhum sentido que o cliente tenha
acesso a toda base de dados, só a informação que lhe convém saber.
As páginas dinâmicas do servidor costumam se escrever no mesmo
arquivo HTML, misturado com o código HTML, assim como ocorria nas páginas
do cliente.

11
PROGRAMAÇÃO EM PHP

Quando uma página é solicitada por parte de um cliente, o servidor


executa os scripts e gera uma página resultado, que somente contem código
HTML.

Este resultado final é o que se envia ao cliente e pode ser interpretado


sem lugar a erros nem incompatibilidades, visto que somente contem HTML.
Logo é o servidor o que maneja toda a informação das bases de dados e
qualquer outro recurso, como imagens ou servidores de correio e logo envia ao
cliente uma página web com os resultados de todas as operações.
Para escrever páginas dinâmicas de servidor existem várias linguagens,
que veremos com mais detalhe adiante.
Common Gateway Interface (CGI) normalmente escritos em Perl, Active
Server Pages (ASP), Hipertext Preprocesor (PHP), e Java Server Pages (JSP).
As vantagens deste tipo de programação são que o cliente não pode ver
os scripts, já que se executam e se transformam em HTML antes de envia-los.
Ademais são independentes do navegador do usuário, já que o código
que recebem é HTML facilmente interpretável.
Como desvantagens pode-se assinalar que será necessário um servidor
mais potente e com mais capacidades que o necessário para as páginas de
cliente.
Ademais, estes servidores poderão suportar menos usuários
concorrentes, porque vai requerer mais tempo de processamento para cada
um.

O que é Javascript

Javascript é uma linguagem de programação utilizada para criar


pequenos programinhas encarregados de realizar ações dentro do âmbito de
uma página web.
Trata-se de uma linguagem de programação do lado do cliente, porque é
o navegador que suporta a carga de processamento.
Graças a sua compatibilidade com a maioria dos navegadores
modernos, é a linguagem de programação do lado do cliente mais utilizada.
Com Javascript podemos criar efeitos especiais nas páginas e definir
interatividades com o usuário.
O navegador do cliente é o encarregado de interpretar as instruções
Javascript e executá-las para realizar estes efeitos e interatividades, de modo
que o maior recurso, e talvez o único, com que conta esta linguagem é o
próprio navegador.
Javascript é o seguinte passo, depois do HTML, que pode dar um
programador da web que decida melhorar suas páginas e a potência de seus
projetos.
É uma linguagem de programação bastante simples e pensada para
fazer as coisas com rapidez, às vezes com leveza.
Inclusive as pessoas que não tenham uma experiência prévia na
programação poderão aprender esta linguagem com facilidade e utilizá-la em
toda sua potência com somente um pouco de prática.
Entre as ações típicas que se podem realizar em Javascript temos duas
vertentes.

12
PROGRAMAÇÃO EM PHP
Por um lado os efeitos especiais sobre páginas web, para criar
conteúdos dinâmicos e elementos da página que tenham movimento, mudem
de cor ou qualquer outro dinamismo.

Por outro lado, Javascript nos permite executar instruções como


resposta às ações do usuário, com o qual podemos criar páginas interativas
com programas como calculadoras, agendas, ou tabelas de cálculo.
Javascript é uma linguagem com muitas possibilidades, permite a
programação de pequenos scripts, mas também de programas maiores,
orientados a objetos, com funções, estruturas de dados complexas, etc.
Ademais, Javascript coloca à disposição do programador todos os
elementos que formam a página web, para que este possa acessar a eles e
modificá-los dinamicamente.
Com Javascript o programador, é quem se converte no verdadeiro dono
e controlador de cada coisa que ocorre na página quando está sendo
visualizada pelo cliente.

O que é Visual Basic Script

É uma linguagem de programação de scripts do lado do cliente, mas é


somente compatível com Internet Explorer.
Épor isso que sua utilização está desaconselhada a favor de Javascript.
Está baseado em Visual Basic que é uma linguagem popular para criar
aplicações Windows.
Tanto sua sintaxe como sua forma de trabalhar está muito inspirada
nele. Entretanto, nem tudo o que se pode fazer em Visual Basic poderemos
fazer com Visual Basic Script, pois este último é uma versão reduzida do
primeiro.
A forma de funcionamento de Visual Basic Script para construir efeitos
especiais em páginas web é muito similar à utilizada em Javascript, e os
recursos aos quais se podem acessar também são os mesmos: o navegador.
Como dissemos, não devemos utilizar esta linguagem na maioria das
ocasiões, embora um caso em que teria sentido utilizar Visual Basic Script
seria a construção de uma Intranet onde saibamos com toda certeza que os
navegadores que vão se conectar serão sempre em Internet Explorer.
Neste caso, um programador habitual de Visual Basic teria mais
facilidades para realizar os scripts utilizando Visual Basic Script ao invés de
Javascript.
Nota: O popular ASP (Active Server Pages) é uma tecnologia de
programação do lado do servidor.
Habitualmente, os scripts ASP se escrevem com Visual Basic Script
também e isso não deve nos confundir.
Visual Basic Script, portanto, é uma linguagem que pode ser utilizada
para a programação no cliente, como também para programação no servidor.

13
PROGRAMAÇÃO EM PHP

DHTML

DHTML não é precisamente uma linguagem de programação. Mas trata-


se de uma nova capacidade que dispõem os navegadores modernos, pelo qual
se pode ter um maior controle sobre a página que antes.
Qualquer página que responde às atividades do usuário e realiza efeitos
e funcionalidades, pode ser englobada dentro do DHTML, mas neste caso nos
referimos mais a efeitos no navegador pelos quais se podem mostrar e ocultar
elementos da página, ou pode modificar sua posição, dimensões, cor, etc.
DHTML nos dá mais controle sobre a página, graças aos navegadores
modernos que incluem uma nova estrutura para visualizar em páginas web
denominada camada. As camadas podem ser ocultadas, mostradas,
deslocadas, etc.

Para realizar as ações sobre a página, como modificar a aparência de


uma camada, seguimos necessitando uma linguagem de programação do lado
do cliente como Javascript ou VBScript.

Esclarecimento: DHTML também pode englobar a programação no servidor.


Depende do autor que esteja descrevendo o que é DHTML, muitas vezes
faz também referência à programação ao servidor e não só ao cliente, como
apontamos neste artigo.
Em outras palavras e para que fique claro. As fronteiras do DHTML ficam
pouco definidas.
As que marcamos nesta apostila são somente as que englobam o
processo no cliente, mas também poderíamos dizer que DHTML é qualquer
coisa que faz uma página dinâmica, já seja no cliente, no servidor ou nas duas
coisas.
Dentro do conceito de DHTML se englobam também as Folhas de Estilo
em Cascata ou CSS (Cascade Style Sheets), que veremos na próxima aula.
EXERCÍCIOS

1- Como se chama o sistema com o qual é construída a WEB?

_
_
_

2- O HTML foi criado a princípio com que objetivo?

14
PROGRAMAÇÃO EM PHP

3- Cite uma razão pela qual construiríamos uma página dinâmica:

4- O que é JavaScript?

5- O que é DHTML?

6- Os servidores web são responsáveis pelo que?

7- O que é HTTP e FTP?

15
PROGRAMAÇÃO EM PHP

8- O browser decompõe a URL em quais partes?

9- O que é um WAMP?

10- O que é PHP?

AULA 1 - EXERCÍCIO DE FIXAÇÃO

Instale o EasyPHP e acesse o http://127.0.0.1

16
PROGRAMAÇÃO EM PHP

AULA 02

O que é CSS?

CSS é uma tecnologia que nos permite criar páginas web de uma maneira
mais exata.

Graças às CSS somos muito mais donos dos resultados finais da


página, podendo fazer muitas coisas que não se podia fazer utilizando somente
HTML, como incluir margens, tipos de letra, fundos, cores...

CSS são as siglas de Cascading Style Sheets, em português, Folhas de


Estilo em Cascata. Neste artigo vamos ver alguns dos efeitos que se podem
criar com as CSS sem necessidade de conhecer a tecnologia inteira.

Para começar:

As Folhas de Estilo em Cascata se escrevem dentro do código HTML da


página web, somente em casos avançados se podem escrever em um arquivo
à parte e linkar a página com esse arquivo.
A princípio, vamos utilizar a maneira mais direta de aplicar estilos aos
elementos da página, mais adiante veremos a declaração em arquivos
externos.
Para isso, vamos conhecer um novo atributo que podemos utilizar em
quase todas as etiquetas HTML: style.

Exemplo:

<p style="color:green;font-weight:bold"> O parágrafo sairá com a cor


verde e em negrito</p>

Dentro do atributo style devemos indicar os atributos de estilos CSS


separados por ponto e vírgula (;).
Durante esta apostila vamos conhecer alguns atributos de CSS, os dois
primeiros que vimos aqui são:
Color: indica a cor do conteúdo, na etiqueta onde estivermos utilizando,
geralmente indica a cor do texto.
Font-weight: indica a grossura do texto. Bold serve para colocar em
negrito.

Cor nos links:


Com HTML definimos a cor dos links no <body>, com os atributos link,
vlink e alink.

17
PROGRAMAÇÃO EM PHP
Isto nos permite mudar a cor dos links para todo o documento, mas e se
quisermos mudar a cor de um link em concreto, para que tenha outra cor
diferente da cor definida na etiqueta <body>?

Para fazer isto utilizaremos o atributo style dentro do link:

<a href="meulink.html" style="color:red">


Assim sairá o link na cor vermelha, independente da cor definida para
todo o documento.
Espaçamento entre linhas:

Com CSS podemos definir o espaço entre cada linha do documento,


utilizando o atributo lineheight.

Por exemplo, podemos definir que para todo um parágrafo o espaço


entre cada uma de suas linhas seja 25 pixels:

<p style="line-height: 25px;">


Um parágrafo normal no qual cada uma das linhas está separada 25 pixels
da outra.
Deverá ser colocado conteúdo suficiente para duas linhas para que o
espaçamento seja visível.
</p>

Espaçamento entre caracteres:


Pode-se definir também o espaço entre cada caractere. Isto se faz com
o atributo de CSS letter-spacing.

Vejamos um exemplo:

<p style="letter-spacing:12cm">
Este parágrafo tem as letras espaçadas por 12 centímetros.
</p>

Este atributo, assim como ocorre com muitos outros de CSS, não está
suportado para todos os navegadores.

Links sem sublinhado:


Um dos efeitos mais significativos e fáceis de realizar com CSS é
eliminar o sublinhado dos links de uma página web.

Existe um atributo que serve para definir a decoração de um texto, se


está sublinhado, riscado, ou se não tem nenhuma destas "decorações".

É o atributo textdecoration, neste caso indicaremos em um link que não


queremos decoração:

<a href="minhapagina.html" style="text-decoration:none">

Incluir estilos para todo um site web:


Uma das características mais potentes da programação com folhas de
estilo consiste em definir os estilos de todo um website.

18
PROGRAMAÇÃO EM PHP
Isto se consegue criando um arquivo onde simplesmente colocamos as
declarações de estilos da página e linkamos todas as páginas do site com esse
arquivo.

Deste modo, todas as páginas compartilham uma mesma declaração de


estilos e, portanto, se a mudamos, todas as páginas serão mudadas.

Vejamos agora todo o processo para incluir estilos com um arquivo


externo.
1 - Criamos o arquivo com a declaração de estilos.

É um arquivo de texto normal, que pode ter qualquer extensão, apesar


de podermos lhe atribuir a extensão .css para lembrarmos de que tipo de
arquivo estamos nos referindo.

O texto que devemos incluir deve ser escrito exclusivamente em sintaxe


CSS, é um pouco diferente da sintaxe que utilizamos dentro do atributo style.

Estaria errado incluir código HTML neste arquivo: etiquetas e outras.

Podemos ver um exemplo a seguir:

P{
font-size : 12pt;
font-family : arial,helvetica;

font-weight : normal;
}
H1 {
font-size : 36pt;
font-family : verdana,arial;
text-decoration : underline;
text-align : center;
background-color : Teal;
}
BODY {
background-color : #006600;
font-family : arial;
color : White;
}
2 - Linkamos a página web com a folha de estilos.

Para isso vamos colocar a etiqueta <LINK> com os atributos

• rel="STYLESHEET" indicando que o link é uma folha de estilo.

• type="text/css" porque o arquivo é de texto, em sintaxe CSS.

• href="estilos.css" indica o nome do arquivo fonte dos estilos.


Vejamos uma página web inteira que linka com a declaração de estilos
anterior:
<html>
<head>
19
PROGRAMAÇÃO EM PHP

<link rel="STYLESHEET" type="text/css"


href="estilos.css"> <title>Página que lê
estilos</title> </head>
<body>
<h1>Página que lê estilos</h1>
<p>
Esta página tem no cabeçalho a etiqueta necessária para linkar com a
folha de estilos. É muito fácil.
</p>
</body>
</html>

As Folhas de Estilo têm muito mais possibilidades.


As Folhas de Estilo em Cascata são um padrão muito amplo, com
especificações e possibilidades muito grandes.

Neste artigo vimos alguns efeitos interessantes que podemos utilizar


mesmo que não tenhamos nenhum conhecimento prévio.

Entretanto, o melhor para trabalhar com esta tecnologia é conhecê-la


bem, dessa forma os resultados serão muito mais surpreendentes.

20
PROGRAMAÇÃO EM PHP

O que é CGI?
É o sistema mais antigo que existe para a programação de páginas
dinâmicas de
servidor.
Atualmente se encontra um pouco defasado por diversas razões entre
as quais se destaca a dificuldade no desenvolvimento dos programas e a
pesada carga que supõem para o servidor que os executa.

Os CGI se escrevem habitualmente na linguagem Perl, entretanto,


outras linguagens como C, C++ ou Visual Basic podem também ser utilizadas
para construí-los.

O funcionamento básico de um programa CGI é parecido com o


apontado para o conjunto das páginas dinâmicas do servidor, com algumas
particularidades.

1. Realiza-se uma petição HTTP, a qual podem acompanhar dados


que chegam ou por um formulário, também através da URL.

2. O servidor executa os programas CGI e trabalha com os recursos


necessários para realizar as ações, como por exemplo, as bases de dados.

3. O programa CGI vai escrevendo na saída padrão, o resultado da


execução do CGI, que inclui etiquetas HTML, já que o que se escreve é uma
página web.

Algumas desvantagens da programação em CGI são as seguintes:

• Os resultados se escrevem diretamente com o CGI, portanto o código


do programa se mistura com o do HTML, tornando difícil sua compreensão e
manutenção.

• Cada programa CGI que se coloca em funcionamento se faz em um


espaço de memória próprio. Sendo assim, se três usuários colocam em
funcionamento um CGI ao mesmo tempo, se multiplicará por três a quantidade
de recursos que ocupa esse CGI. Isto significa uma grave ineficiência.
O que é Perl?
É uma linguagem de programação muito utilizada para construir aplicações
CGI para a web.
Perl é a abreviação de Practical Extracting and Reporting Language,
trata-se de uma linguagem de programação muito prática para extrair
informações de arquivos de textos e gerar informes a partir do conteúdo dos
arquivos.

É uma linguagem de livre uso, isso quer dizer que é gratuita. Antes,
estava bastante associado à plataforma Unix, mas atualmente está disponível
em outros sistemas operativos como Windows.

Perl é uma linguagem de programação interpretada, assim como muitas


outras linguagens da Internet como Javascript ou ASP.

21
PROGRAMAÇÃO EM PHP
Isto quer dizer que o código dos scripts em Perl não se compila, e sim,
que cada vez que executado, o código é lido e colocado em funcionamento.

Ademais é extensível a partir de outras linguagens, já que desde Perl


poderemos fazer chamadas a subprogramas escritos em outras linguagens.

Também desde outras linguagens podemos executar o código Perl.

Perl está inspirado a partir de linguagens como C, sh, awk e sed (alguns
provenientes dos sistemas Unix), mas está enfocado a ser mais prático e fácil
que estes últimos.

É por isso que um programador, que tenha trabalhado com a linguagem


C e outras, terá uma maior facilidade para entendê-la e utilizá-la rapidamente.

Se quisermos trabalhar com Perl será necessário ter instalado o intérprete


da linguagem.

A partir desse momento podemos executar CGIs em nossos servidores


web.

O processo para conseguir pode variar de uns servidores a outros, mas


costuma-se colocar em um diretório especial do servidor chamado cgi-bin onde
colocamos as correspondentes permissões CGI.

Ademais, os arquivos com o código também deverão ter permissão de


execução.

O que é ASP?
ASP (Active Server Pages) é a tecnologia desenvolvida pela Microsoft
para a criação de páginas dinâmicas de servidor.

ASP se escreve na mesma página web, utilizando a linguagem Visual


Basic Script ou Jscript (Javascript de Microsoft).

Uma linguagem do server side é aquela que se executa no servidor web,


justo antes da página ser enviada através da Internet ao cliente.

As páginas que se executam no servidor podem realizar acessos à


bases de dados, conexões em rede, e outras tarefas para criar a página final
que o cliente verá.

O cliente somente recebe uma página com o código HTML resultante da


execução da página ASP.

Como a página resultante contém unicamente código HTML, é


compatível com todos os navegadores.

Os tipos de servidores que empregam esta linguagem são,


evidentemente, todos aqueles que funcionam com sistema Windows NT,

22
PROGRAMAÇÃO EM PHP
apesar de que também podemos utilizar em um PC com Windows 98 se
instalarmos um servidor denominado Personal Web Server.

Inclusive sistemas Linux podemos utilizar a ASP se instalarmos um


componente denominado Chilisoft, apesar de que parece claro que será melhor
trabalhar sobre o servidor web.

Com a ASP podemos realizar muitos tipos de aplicações distintas.

Permite-nos acesso à base de dados, ao sistema de arquivos do


servidor e em geral, a todos os recursos que tenha o próprio servidor.

Também temos a possibilidade de comprar componentes ActiveX


fabricados por distintas empresas de desenvolvimento de software que servem
para realizar múltiplos usos, como o envio de correio, gerar gráficos
dinamicamente, e etc.

Atualmente, já foi apresentada a segunda versão de ASP, o ASP.NET,


que compreende algumas melhoras em relação às possibilidades da linguagem
e rapidez em seu funcionamento.

ASP.NET tem algumas diferenças em relação à sintaxe com o ASP, de


modo que há de ser tratado de formas distinta um do outro.

O que é PHP?
PHP é o acrônimo de Hipertext Preprocesor. E será a linguagem que
utilizaremos em nosso curso.

É uma linguagem de programação do server side gratuita e


independente de plataforma, rápido, com uma grande livraria de funções e
muita documentação.

As páginas que se executam no servidor podem realizar acessos a


bases de dados, conexões em rede, e outras tarefas para criar a página final
que será vista pelo cliente.

O cliente somente recebe uma página com o código HTML resultante da


execução da
PHP.

Como a página resultante


contém unicamente código
HTML, é compatível com todos
os navegadores.

Esquema do
funcionamento das páginas PHP
acima.

Uma vez que já


conhecemos o conceito de
linguagem de programação de

23
PROGRAMAÇÃO EM PHP
scripts do lado do servidor
podemos falar de PHP.
PHP se escreve dentro do
código HTML, o que o faz
realmente fácil de utilizar, assim
como ocorre com o popular ASP
da Microsoft, porém com
algumas vantagens como sua gratuidade, independência de plataforma, rapidez e
segurança.

Qualquer pessoa pode baixar através da página principal do PHP


www.php.net e de forma gratuita, um módulo que faz com que nosso servidor
web compreenda os scripts realizados nesta linguagem.

É independente de plataforma, visto que existe um módulo de PHP para


quase qualquer servidor web.

Isto faz com que qualquer sistema possa ser compatível com a
linguagem e significa uma vantagem importante, já que permite levar o site
desenvolvido em PHP de um sistema a outro sem praticamente nenhum
trabalho.

PHP, no caso de estar montado sobre um servidor Linux ou Unix, é mais


rápido que ASP, dado que se executa em um único espaço de memória e isto
evita as comunicações entre componentes COM que se realizam entre todas
as tecnologias implicadas em uma página ASP.

Por último assinalamos a segurança, neste ponto também é importante o


fato de que em muitas ocasiões PHP se encontra instalado sobre servidores
Unix ou Linux, que são bastante conhecidos como mais velozes e seguros que
o sistema operativo onde se executa ASP, Windows NT ou 2000.

Ademais, PHP permite configurar o servidor de modo que se permita ou


rejeite diferentes usos, o que pode fazer da linguagem mais ou menos segura
dependendo das necessidades de cada um.

Foi criado originalmente em 1994 por Rasmus Lerdorf, mas como PHP
está desenvolvido em política de código aberto, ao longo de sua história teve
muitas contribuições de outros desenvolvedores.

Atualmente PHP se encontra em sua versão 5.

Esta linguagem de programação está preparada para realizar muitos


tipos de aplicações web graças à extensa livraria de funções com a qual está
dotada.

A livraria de funções cobre desde cálculos matemáticos complexos até


tratamento de conexões de rede, podemos dar dois exemplos.

Algumas das mais importantes capacidades de PHP são:


compatibilidade com as bases de dados mais comuns, como MySQL, mSQL,
Oracle, Informix, e ODBC, por exemplo.

24
PROGRAMAÇÃO EM PHP
Inclui funções para o envio de correio eletrônico, upload de arquivos,
criar dinamicamente no servidor imagens no formato GIF, inclusive animadas e
uma lista interminável de utilidades adicionais.

O que é JSP?
JSP é a abreviação de Java Server Pages, que em português seria algo
como Páginas de Servidor Java.

É então, uma tecnologia orientada a criar páginas web com programação


em Java.
Com JSP podemos criar aplicações web que se executam em vários
servidores web, de múltiplas plataformas, já que Java é em essência uma
linguagem multiplataforma.
As páginas JSP estão compostas de código HTML/XML misturado com
etiquetas especiais para programar scripts de servidor em sintaxe Java.
Portanto, poderemos escrever as JSP com nosso editor HTML/XML habitual.

PHP
Uma observação importante é que para o desenvolvimento dos códigos
em PHP que iremos criar em nosso curso, iremos utilizar o Notepad++, é um
software de edição simples e grátis que pode ser facilmente encontrado na
internet. Mais adiante teremos uma explicação de como instalá-lo.

Você ainda pode utilizar diversos editores para desenvolver em PHP,


como por exemplo, o Adobe Dreamweaver e PHP Designer.

Agora que instalamos


todos os componentes
necessários para o
desenvolvimento em PHP,
especificamente um Servidor
Web, PHP e MySQL estando
estes três elementos no pacote
EasyPHP, estamos prontos
para iniciar os primeiros passos
para escrever em PHP.

A primeira coisa que devemos fazer é nos certificar que nosso servidor
Web está rodando.
Você deverá ligá-lo se ainda não estiver, falamos sobre isso na primeira
aula, mas podemos testar por meio do navegador, clique em Internet Explorer.

Clique agora na Barra de Navegação e digite: http://localhost/

25
PROGRAMAÇÃO EM PHP

Aperte a tecla Enter.

Como podemos perceber, nosso Servidor Web não está rodando, para
iniciá-lo, clique em Iniciar > Todos os Programas > EasyPHP 5.3.2. > EasyPHP
5.3.2.

Pronto, nosso servidor está rodando, clique em Atualizar no Internet


Explorer.

26
PROGRAMAÇÃO EM PHP

Perceba que agora nosso servidor está funcionando corretamente.

Minimize o navegador. Você deve estar se perguntando, toda a vez que


eu iniciar meu servidor eu terei de fazer esse procedimento?

Essa é uma ótima pergunta. Não, você pode fazer com que o seu
Servidor Web seja iniciado automaticamente, vamos fazer isso agora.

Para isso clique com o botão direito no ícone do EasyPHP e posicione o


mouse sobre a opção Configurações, em seguida selecione a opção EasyPHP.

Na janela que irá se abrir, selecione a caixa Iniciar com o Windows,


clique em Aplicar e por último clique em Fechar.

27
PROGRAMAÇÃO EM PHP

Continuando agora com nossa criação em PHP, primeiramente devemos


criar um diretório onde iremos colocar nossos primeiros arquivos em PHP.
Clique com o botão direito no ícone do EasyPHP e selecione a opção
Explore.
Está é a pasta inicial do EasyPHP, a www, nela iremos criar uma nova
pasta, para isso clique em Nova Pasta.

28
PROGRAMAÇÃO EM PHP
Coloque seu nome como phpteste e aperte Enter. Iremos utilizar muito
está pasta a medida de nosso curso, portanto iremos criar um atalho para ela
na área de trabalho.
Clique com o botão direito na pasta phpteste e posicione a seta do
mouse sobre a opção Enviar Para, em seguida selecione a opção Área de
Trabalho (criar atalho), como mostra a imagem abaixo.
Pronto, criamos um atalho para a pasta phpteste com sucesso na Área de
Trabalho.

Agora, volte ao diretório principal do EasyPHP. Clique com o botão


direito em www e selecione a opção Propriedades.

Vá até a aba Compartilhamento e clique no botão Compartilhar...

29
PROGRAMAÇÃO EM PHP

Clique em Compartilhar.

E finalmente, clique em Pronto.

30
PROGRAMAÇÃO EM PHP
Agora clique em Fechar.

Feche também a janela do EasyPHP.

Mãos à obra nesse momento, iremos criar nosso primeiro arquivo em PHP.
Primeiramente devemos baixar o Notepad++, para isso vamos restaurar
a janela do Internet Explorer, para isso, clique no local indicado na imagem
abaixo.

31
PROGRAMAÇÃO EM PHP

Agora clique na barra de navegação, digite o endereço:


http://www.google.com.br/ e pressione Enter.

Agora estamos na página inicial do site de busca mais famoso do mundo, o


Google.

Para iniciar uma busca referente ao Notepad++, digite no campo de


busca “Notepad ++ em português” e pressione Enter.

32
PROGRAMAÇÃO EM PHP
Agora podemos ver os resultados referentes à nossa pesquisa, o
primeiro nos direcionará para uma página de download do Notepad++ em
português, vamos escolher essa opção clicando no local indicado na imagem
abaixo.

Clique em Download.

33
PROGRAMAÇÃO EM PHP

Clique agora em Download grátis.

Após o download ter sido concluído, clique em Executar.

34
PROGRAMAÇÃO EM PHP

Antes de iniciarmos a instalação do Notepad++, feche o navegador.


Essa é a tela de download e instalação do Notepad++, primeiramente
você visualizará o contrato de licença, clique em Aceitar.

Haverá uma opção referente à Tollbar, caso queira instalar alguma


delas, mantenha os itens selecionados. Clique em Próximo.

Por favor, aguarde o término do download e verifique que


automaticamente o instalador do Notepad++ irá ser executado. Quanto à tela
que era responsável pelo download, podemos fechá-la, clique então em Sair.

35
PROGRAMAÇÃO EM PHP

Em nossa próxima aula iremos terminar a instalação do Notepad++ e


Iniciar a criação de códigos em PHP.

EXERCÍCIOS
1- Cite dois editores de PHP.

2- Qual a primeira coisa que precisamos fazer para utilizar um servidor web?

3- Quais os passos para iniciar o servidor web?

4- Como podemos fazer para o servidor iniciar com o sistema operacional?

36
PROGRAMAÇÃO EM PHP

5- Qual o diretório principal do servidor web?

6- O que é CSS?

7- O que é CGI?

8- O que é ASP?

9- O que é PHP?

37
PROGRAMAÇÃO EM PHP
10- JSP é uma abreviação de que?
_

EXERCÍCIO DE FIXAÇÃO

Configure o EasyPHP para iniciar junto com o Windows.


Dentro de Localweb, crie uma pasta chamada phpteste e compartilhe ela.

38
PROGRAMAÇÃO EM PHP
AULA 03
Instalando o Notepad++.

Nessa aula você irá terminar a instalação do Notepad++ e criará seus


primeiros códigos em PHP.
A primeira tela é referente ao idioma, e já está setado para o português,
portanto clique em OK.

Clique agora em Próximo.

39
PROGRAMAÇÃO EM PHP
Clique agora em Eu Concordo.

Clique em Próximo.

E agora clique em Instalar e aguarde o término da instalação.

40
PROGRAMAÇÃO EM PHP

Mantendo a opção “Executar Notepad ++”, clique em Terminar.

Esse arquivo chamado change.log não nos interessa. Por isso feche-o
da mesma forma que foi feito em aula, clique com o botão direito e selecione a
opção Fechar.

Perceba que foi criado um arquivo chamado new 2. A princípio não


iremos colocar nenhum código nesse arquivo, apenas salve o arquivo na pasta
phpteste, você criou um atalho desta pasta na Área de Trabalho.

Você deve salvá-la com o nome de “new_phpinfo.php”, .php é a


extensão em formato PHP, seus arquivos em PHP sempre devem ser salvos
em .php

41
PROGRAMAÇÃO EM PHP
Agora nosso arquivo em PHP está salvo em nosso Servidor Web, vamos
então escrever nosso primeiro código em nosso arquivo.

Digite <?php phpinfo(); ?>

Agora clique em Salvar.

Vamos visualizar o que desenvolvemos até agora em nosso navegador.


De um clique no Internet Explorer.

Agora clique na barra de navegação e digite:

http://localhost/phpteste/new_phpinfo.php

42
PROGRAMAÇÃO EM PHP

Em seguida pressione Enter.

Você poderá ver que isso trará informações sobre PHP, aquela pequena
função que você inseriu é uma função em PHP muito especial que retorna todo
o tipo de informação referente à PHP que você tenha

instalado em seu
sistema.

Isso é um
grande recurso
para você saber
que o PHP está
rodando e qual é
sua configuração,
provavelmente
todo o
programador em
PHP usa está
página como um
fácil e rápido teste
para ter certeza de
que o PHP está
rodando
com sucesso na
máquina antes de
começarem a fazer
qualquer outra
coisa.

Devido a essa página exibir muito referente à suas configurações, você


nunca irá querer coloca-la no ar onde alguém poderá encontrá-la. Para
propósitos de desenvolvimento, no entanto, ela se torna muito útil.

Vamos voltar agora ao Notepad++, clique no local indicado na imagem abaixo.

43
PROGRAMAÇÃO EM PHP

Vamos falar um pouco sobre o código que digitamos para entendermos


um pouco mais sobre como o PHP funciona.

Esse código que digitamos é formado primariamente por três partes.

1ª <?php
2ª phpinfo();
3ª ?>

44
PROGRAMAÇÃO EM PHP

A primeira e a segunda parte deste código são as tags que fazem


relação ao início e ao término do código.

Foi dito no decorrer do curso que o PHP é incorporado ao HTML e esse


é o mecanismo que faz com que isso ocorra <?php?>, nosso servidor acessa a
página web e sabe que está pronto para PHP porque temos a extensão .php,
mas ainda precisa de alguma indicação de onde o HTML começa e termina e
onde o PHP começa e termina.

E fazemos isso por falarmos “Ok, ligue o PHP!”, fazemos isso com o
“<?php” começando assim nosso código em PHP, e quando terminamos nosso
código, colocamos “?>” para darmos a mensagem “Ok, meu pode desligar o
PHP!”.
Existem formas curtas de se escrever em PHP, chamadas de short open
tags, o que são consideradas formas ruins.
Ex: <? ?>, <?= ?>
Existem ainda, outros tipos de tag que são ASP style tags que são
consideradas formas muito ruins.

Ex: <% %>, <%= %>

Há uma ótima razão para essas serem consideradas formas ruins, é


porque elas nem sempre funcionam, sendo assim é aconselhável sempre
utilizar a forma correta <?php ?>, para evitar retrabalho e problemas futuros.
Algo interessante referente à PHP é que não importa onde cada código
está localizado ao longo da linha, desde que esteja na ordem correta.
Assim podemos deixar nosso código da forma mais legível possível,
facilitando nosso trabalho.
Agora que você já sabe um pouco sobre o funcionamento básico do
PHP, vamos falar sobre variáveis.

VARIÁVEIS
Variáveis são usadas para guardar informações que podem ser usadas
mais de uma vez no mesmo script. As variáveis podem conter textos, números,
arrays, etc.

Para declarar uma variável em PHP, utilizamos o sinal de cifrão ($)


seguido do nome da variável. Depois, colocamos o sinal de igual e o valor da
variável. Por fim, finalizamos com ponto-e-vírgula.

Caso o valor da variável seja um texto, ele deverá estar entre aspas.

Observe o exemplo:

<?php
$autor = "João da Silva";
?>

Para usar uma variável, é muito simples. Entenda observando o exemplo abaixo:

<?php
45
PROGRAMAÇÃO EM PHP
$autor = "João da Silva";
echo $autor;
?>

O Script acima irá exibir um nome.

Repare que para exibir o valor numérico da variável não precisamos usar
aspas.

O PHP diferencia letras maiúsculas e minúsculas nos nomes das


variáveis. Costuma-se dizer que os nomes das variáveis são "Case Sensitive".
Isso quer dizer que você não pode criar uma variável com o nome
$nomeAutor e depois usar como $nomeautor ou $NOMEAUTOR.

O nome de uma variável não pode conter espaços, hífens e caracteres


especiais. Além disso, o nome de uma variável não pode começar com um
número (após o cifrão). Resumindo, o nome da variável pode conter apenas
letras, números (sem iniciar) e underscore (_).

Vamos falar agora a respeito dos tipos de dados suportados.


Inteiros:

Sintaxe:

$curso = 1000;

curso = -1000;
$curso = 0234; (inteiro base octal)
$curso = 0x34; (inteiro na base hexadecimal)
Ponto Flutuante:

Sintaxe:

$curso = 1.050;
$curso = 52e3; (equivalente a 52000)
Strings:

Sintaxe:

$curso = „PHP‟;
# desta maneira, o valor da variável será exatamente o texto contido entre
as aspas.

$curso = “PHP”;
# desta maneira, qualquer variável ou caractere de escape será expandido
antes de ser
atribuído.

Ainda dentro do grupo das Strings estão os Caracteres de Escape:

\n – nova linha;
\r – retorno de carro (semelhante a \n)
46
PROGRAMAÇÃO EM PHP

\t – tabulação horizontal
\\ - a própria
barra (\) \$ - o
símbolo $
\‟ – aspas
simples \”
aspas duplas

ARRAY:

Array é um tipo de variável que possui seu conteúdo agrupado por


índices, como um vetor ou um dicionário. Estes índices podem ser de qualquer
tipo suportado pelo PHP, como é mostrado a seguir:

Sintaxe:
$estilo_musical[0] = „pagode‟;
$estilo_musical[1] = “drum \‟n\ „ bass”;
$estilo_musical[“MPB”] = „Gilberto Gil‟;
$estilo_musical[“Rock”] = „Rolling Stones‟;
Listas: Utilizadas em PHP para realizar atribuições múltiplas, como por
exemplo, atribuir valores de um array para variáveis, como mostra a seguir:

Sintaxe:

list($a,$b,$c) = array (0=>”a”, 1=>”b”, 2=>”c”);

O trecho de código acima atribuirá simultânea e respectivamente os


valores do array ás variáveis passadas como parâmetros para o comando list. É
muito importante lembrar que só serão passadas ao comando list os

O trecho de código acima atribuirá simultânea e respectivamente os


valores do array ás variáveis passadas como parâmetros para o comando list.
É muito importante lembrar que só serão passadas ao comando list os
elementos do array que possuírem os índices com valores inteiros e não
negativos.

BOOLEANS:

Em PHP, não existe um tipo específico para as variáveis do tipo


boolean, ele trata este tipo com valores inteiros: 0 para false e valores
diferentes deste como true.

APLICAÇÕES:

Trabalhando com números inteiros, funções e strings.

Primeiramente vamos abrir o Notepad++, pois ele é o responsável pelo


desenvolvimento PHP em nosso curso.
Clique no menu Iniciar.

47
PROGRAMAÇÃO EM PHP

Agora clique em Notepad++.

Tomaremos por conceito básico que você está com o EasyPHP sempre
ativo devido as configurações que efetuamos na última aula. Sendo assim não
precisamos nos preocupar com ele agora.
O que iremos criar com a ajuda do Notepad++ é um programa que declara
uma determinada variável e logo em seguida chama seu valor de acordo com o
que foi determinado previamente

48
PROGRAMAÇÃO EM PHP

DESENVOLVIMENTO DO PROGRAMA:
Você irá desenvolver agora seu primeiro aplicativo web.

Clique no local indicado Novo para criar um novo documento em branco.

Com o novo documento criado, podemos encerrar o primeiro que foi


aberto clicando com o botão direito e selecionando a opção fechar, mas deixa
que nós façamos a primeira ação para você.
Selecione a opção Fechar esta aba.

Vamos iniciar com o código responsável por dar o OK para a criação do


PHP.

49
PROGRAMAÇÃO EM PHP

Digite: <?php

Agora, para organizar melhor nosso código, vamos quebrar uma linha e
começar a declaração de variáveis.
Aperte Enter.

Vamos declarar agora a primeira variável, você aprendeu qual a


utilização das variáveis nas aulas passadas, mas relembrando, elas
armazenam dados para serem usados posteriormente.

Digite: $joao = 19;

50
PROGRAMAÇÃO EM PHP

Acabamos de declarar nossa primeira variável, agora iremos adicionar


mais 3 variáveis.

Aperte Enter.

Digite agora $pedro = 16;

Vamos declarar agora a terceira variável.

Aperte Enter.

Digite agora $jessica = 17;

Vamos adiante para declararmos a última variável de nosso código.

Aperte Enter.

Digite $carlos = 20;

Pronto, declaramos todas as variáveis.

Agora iremos declarar as funções que irão chamar os dados armazenados


nas variáveis.
A única função que iremos utilizar em nosso código será a echo.
O echo imprime a string declarada dentro de si assim como qualquer
outra variável ou expressão que esteja dentro de sua função.
Para iniciarmos nossa função, vamos fazer duas quebras de linha, assim
organizando melhor nossa página.

Aperte Enter.

Aperte novamente Enter.

Agora digite: echo ( "João tem $joao anos.<br>");


51
PROGRAMAÇÃO EM PHP

Agora analisaremos a estrutura dessa função. A função echo, “mandou”


por assim dizer, que fosse impressa a frase: “João tem (variável de joao)
anos.”.

O <br> é referente a uma quebra de linha, você pode ainda utilizar


caracteres especiais mas colocamos um código bem simples em HTML para
facilitar. Devemos fazer a quebra de linha porque iremos declarar mais quatro
variáveis.

Agora para seguirmos adiante, iremos quebrar a linha de código mais uma
vez.

Aperte Enter.

Agora digite: echo ( "Pedro tem $pedro anos.<br>");

Vamos acrescentar outra quebra no código.


Aperte Enter.

Agora digite: echo ( "Jéssica tem $jessica anos.<br>");


Quebraremos a linha do código mais uma vez para declarar o ultimo echo.

Aperte Enter.

Digite agora echo ( "Carlos tem $carlos anos.<br>");

Por fim, vamos quebrar novamente a linha para encerrar nosso código.

Aperte Enter.

Digite: ?>

52
PROGRAMAÇÃO EM PHP

Agora, clique no ponto indicado:

Pressione Enter.

Digite: header(“Content-type: text/html; charset=utf8”);

53
PROGRAMAÇÃO EM PHP

Esse código irá codificar nossas palavras que tiveram caracteres especiais.

Agora vamos salvar o arquivo que desenvolvemos.

Clique em Arquivo.

Agora clique em Salvar.

54
PROGRAMAÇÃO EM PHP

Agora clique em Área de Trabalho.

De um clique duplo na pasta phpteste – atalho.

55
PROGRAMAÇÃO EM PHP

Renomeie o arquivo para testeinteiros.php e aperte Enter.

Pronto, agora nosso arquivo está salvo em nosso servidor e pronto para
ser executado por qualquer navegador.
Vamos visualizar o resultado de nosso código no Internet Explorer, clique nele.

Agora clique na Barra de Navegação.

56
PROGRAMAÇÃO EM PHP

Agora digite:

http://localhost/phpteste/testeinteiros.php

E aperte Enter.

Agora você pode visualizar o resultado do código que desenvolvemos.


Ele é um código que imprime números Inteiros e Strings, como você
pode perceber ao decorrer da aula.

Os números inteiros são referentes às variáveis que você declarou antes


de acrescentar o echo, as strings estão entre aspas logo após os parênteses
de cada echo. A string seria a frase em sim, colocada entre aspas.

57
PROGRAMAÇÃO EM PHP
.

EXERCÍCIOS

1- Como podemos criar um novo arquivo no Notepad++?

2- Qual tag inicia o código em PHP?

3- Para que serve a função echo?

4- Onde devemos salvar os arquivos em PHP para que possam ser


visualizados pelo navegador?

5- Com que extensão devem ser salvos os arquivos em PHP?

6- O que exibiu o arquivo new_phpinfo.php que criamos no decorrer da aula?

7- O que são variáveis?

58
PROGRAMAÇÃO EM PHP

8- O que é um array?

9- Para que são usadas as listas em PHP?

EXERCÍCIO DE FIXAÇÃO

Instale o Notepad++.

Crie um arquivo em PHP chamado testeinteiros.php utilizando


Notepad++.
Salve ele na pasta phpteste.
Agora crie um código que exiba a idade de 4 pessoas diferentes, tendo
como base o exemplo abaixo.

59
PROGRAMAÇÃO EM PHP
AULA 04
Comandos:

Veremos como colocar em prática o que aprendemos nas aulas


anteriores com referência a variáveis e tipos de dados, especificamente o uso
dos comandos de avaliação if e else.
Primeiramente vamos abrir o Notepad++, pois ele é o responsável pelo
desenvolvimento em PHP em nosso curso.
Clique no menu Iniciar.

Agora clique em Notepad++

60
PROGRAMAÇÃO EM PHP
Tomemos por conceito básico que você está com o EasyPHP sempre
ativo devido as configurações que efetuamos nas aulas anteriores. Sendo
assim, não precisamos nos preocupar com ele agora.

O que iremos criar com a ajuda do Notepad++ é um programa que


declara se um aluno está aprovado ou reprovado, tomando como base suas
notas.

Vamos
iniciar com o
código
responsável
por dar o OK
para a criação
do PHP.

Digite:
<?php

Agora,
para organizar
melhor
nosso código,
vamos quebrar
uma linha e
começar a
declaração de
variáveis.

Aperte Enter.

Vamos declarar agora a primeira variável você aprendeu para que


servem as variáveis nas aulas passadas, mas relembrando, elas armazenam
dados para serem usados posteriormente.

Digite:
$prova1 = 6;

61
PROGRAMAÇÃO EM PHP

Acabamos de declarar nossa primeira variável, agora iremos adicionar


mais 3 variáveis.

Pressione Enter.

ite agora $prova2 = 8;

Vamos declarar agora a terceira variável.


Aperte Enter.

Digite agora $prova3 = 10;

Vamos adiante para declararmos a ultima variável de nosso código.


Aperte Enter.

Digite $prova4 = 3;

Vamos quebrar mais uma linha.

Pressione Enter.

Agora vamos declara a variável responsável pela soma das notas.

Digite: $media = ($prova1 + $prova2 + $prova3 + $prova4) /4;

Pronto, declaramos todas as variáveis.

Agora iremos declarar os comandos de avaliação if e else.

Pressione Enter.
62
PROGRAMAÇÃO EM PHP

Pressione novamente Enter.


Agora digite if ($media >= 7)

Vamos analisar o código por alguns instantes, o que definimos nesse if,
é que se a $media for maior ou igual a 7, irá ser tomada uma determinada
ação, definiremos essa ação agora.
Pressione Enter.

Digite { e pressione Enter.

Agora devemos pressionar a tecla Tab, mas deixe que nós façamos isso
para você.

Agora digite: echo ("Você foi aprovado sua nota final é de $media.");

63
PROGRAMAÇÃO EM PHP

Aperte Enter.
Pressione Backspace.
Digite }.

Vamos analisar por um momento a estrutura dessas linhas de código que


acabamos de inserir.

A função echo, irá imprimir a string referente ao resultado da nota. Agora


iremos acrescentar um comando que irá se aplicar caso a nota seja menor que
7.

Aperte Enter.

Digite else e pressione Enter.

Agora digite {.

Aperte Enter.

Agora devemos pressionar a tecla Tab, mas deixe que nós façamos isso
para você.

Digite: echo ("Você foi reprovado sua nota final é de $media.");

Pressione Backspace agora.

Digite } e pressione Enter.

64
PROGRAMAÇÃO EM PHP
Digite } e pressione Enter.
Digite por fim ?>.

Clique no local indicado e tecle Enter.

Digite o código de decodificação de caracteres:

header(“Content-type: text/html; charset=utf-8”);

65
PROGRAMAÇÃO EM PHP

Clique no local indicado e tecle Enter.

Digite o código de decodificação de caracteres:

header(“Content-type: text/html; charset=utf-8”);

66
PROGRAMAÇÃO EM PHP

Agora vamos salvar o arquivo que desenvolvemos.

Clique em Arquivo.

Agora clique em Salvar Como.

67
PROGRAMAÇÃO EM PHP

Abrirá automaticamente o caminho selecionado da última vez em que


um projeto foi salvo, neste caso será phpteste na área de trabalho.

Renomeie o arquivo para nota.php e aperte Enter.

Pronto, agora nosso arquivo está salvo em nosso servidor e pronto para
ser executado por qualquer navegador.
Vamos visualizar o resultado de nosso código no Internet Explorer.
Clique nele.

68
PROGRAMAÇÃO EM PHP

Agora clique na barra de navegação.

Agora digite

http://localhost/phpteste/nota.php

Aperte Enter.

Agora você pode visualizar o resultado do código que desenvolvemos.

DECLARAÇÃO DE STRINGS:

Uma string é uma cadeia de caracteres alfanuméricos.

Para declarar uma string podemos utilizar aspas simples '' ou aspas duplas
"".

$variavel = 'Isto é um teste';


$variavel = “Isto é um teste”;

A diferença é que todo conteúdo contido dentro das aspas duplas é


avaliado pelo PHP.
Assim, se a string contém uma variável, esta variável será traduzida pelo
seu valor.

<?php
$fruta = 'maçã';
print "como $fruta"; // resultado 'como maçã'
print 'como $fruta'; // resultado 'como $fruta'
?>
Podemos declarar uma string com uma palavra-chave:

69
PROGRAMAÇÃO EM PHP
<?php
$texto = <<<CHAVE
Aqui nesta área
você pode escrever
CHAVE;
echo $texto;
?>

CONCATENAÇÃO:

Para concatenar strings, pode-se utilizar o operador "." ou colocar


múltiplas variáveis dentro de strings duplas "", uma vez que seu conteúdo é
interpretado.

<?php
$fruta = 'maçã';
//primeira forma
echo $fruta . ' é a fruta de adão';
//resultado = maçã é a fruta de adão
//segunda forma
echo "{$fruta} é a fruta de adão";
//resultado = maçã é a fruta de adão
?>
O PHP realiza automaticamente a conversão de tipos:

<?php
$a = 1234;
echo 'O salário é ' . $a . "\n";
echo "O salário é $a \n';
?>

Caracteres de escape:

Como já visto nas aulas anteriores, dentro de aspas duplas "" podemos
utilizar controles especiais interpretados pelo PHP, que são os caracteres de
escape (\):

\n nova linha
\r retorno de carro
\t tabulação
\\ barra
invertida \ \"
aspas duplas
\$ símbolo de
$

STRTOUPPER

Transforma uma string (conteúdo) para maiúsculo.

<?php
string strtoupper('Convertendo para maiúsculo');
?>

70
PROGRAMAÇÃO EM PHP
Substr

Retorna parte de uma string (conteúdo).

string substr (string conteúdo, int início [, comprimento])


Exemplo:

<?php
$rest = substr("América", 1);
echo $rest . "\n"; // mostra mérica
$rest = substr("América", 1, 3);
echo $rest . "\n"; // mostra mér
$rest = substr("América", 0, -1);
echo $rest . "\n";// mostra Améric
$rest = substr("América", -2);
echo $rest . "\n";// mostra ca
?>
STRING

Uma string é uma cadeia de caracteres alfanuméricos.

STRPAD

Preenche uma string com outra string, dentro de um formato específico.

string str_pad ( string entrada, int tamanho [, string complemento [, int


tipo]])
Tipo de preenchimento pode ser:
STR_PAD_RIGHT = preenche com caracteres à direita;
STR_PAD_LEFT = preenche à esquerda
STR_PAD_BOTH = preenche em ambos os lados.

Exemplo:

<?php
$texto = "The beatles";
print str_pad($texto, 20) . "\n";
print str_pad($texto, 20, "*",
STR_PAD_LEFT) . "\n"; print str_pad($texto,
20, "*", STR_PAD_BOTH) . "\n"; print
str_pad($texto, 20, "*) . "\n"; ?>

STR_REPEAT

Repete uma string uma certa quantidade de vezes.

string str_repeat ( string entrada, int quantidade)


Exemplo:

<?php
$txt = ".o000o.";
print str_string($txt, 5) . "\n";
?>
71
PROGRAMAÇÃO EM PHP

STRLEN

Retorna o comprimento da string.

int strlen ( string entrada)


<?php
$txt = "o rato oreu a roupa do rei de roma";
print 'O comprimento é: ' . strlen($txt) . "\n";
?>

STR_REPLACE

Substitui uma string por outra em um dado contexto.

mixed str_replace ( mixed procura, mixed subistitui, mixed contexto)

<?php
$txt = "o rato oreu a roupa do rei de roma";
print str_replace('Rato', 'leão', $txt;
?>

STRPOS

Encontra a primeira ocorrência de uma string dentro de outra.

int strpos ( string principal, string procurada [, int offset])

<?php
$minha_string = "o rato roeu a roupa do rei
de roma"; $encontrar = 'roupa';
$posicao = strpos($minha_string, $encontrar);
if ($posicao)

72
PROGRAMAÇÃO EM PHP
{
echo "String encontrada na posição $posicao";
}
else
{
echo "String não encontrada";
}
?>
Uma das tarefas mais complicada ao se programar, é lidar com dados e
a linguagem utilizada não possuir meios adequados para fazê-lo.

Geralmente, a manipulação de strings é a pior delas. Mas não no PHP.

O pessoal responsável pela linguagem montou um verdadeiro arsenal


que facilita a vida dos programadores. Só temos que agradecer.

O OPERADOR PONTO

A primeira coisa que você precisa saber sobre strings no contexto PHP é
a existência do operador ponto.

O operador ponto é usado para concatenar (ou fundir) strings. Veja um


exemplo:

<?php
$variavelTexto = "Este é um exemplo de ";
echo($variavelTexto."concatenação de strings");
?>

Dê uma olhada na saída efetuada pela função echo(): "Este é um


exemplo de concatenação de strings".

O operador ponto, colocado entre a variável $variavelTexto e a string


literal, tem como resultado a união das duas strings.

É claro que poderíamos ter fornecido o parâmetro da função echo()


como "$variavelTexto concatenação de strings", ou seja, colocar a variável
dentro das aspas duplas.

O resultado seria o mesmo, porém o estilo de programação é considerado


de baixo
nível.

Existem inúmeras razões para usar o operador ponto. A principal, no


entanto, é apenas para manter cada coisa no seu lugar.

Um bom programador não sobrecarrega o interpretador PHP fazendo


com que ele tenha que extrair uma variável que esteja embutida numa string
literal.

Use e abuse do operador ponto, é para isto que ele foi bolado.

73
PROGRAMAÇÃO EM PHP
OBTENDO SUBSTRINGS

Uma substring nada mais é do que um pedaço de uma string. Observe o


exemplo:

<?php
$stringLonga = "Esta é uma string da qual
queremos tirar um pedaço.";

echo(substr($stringLonga, 0, 4));
?>

Para extrair um naco da string 'stringLonga' utilizamos a função substr(),


a qual precisa de três argumentos:

A string da qual queremos extrair a substring;

A posição inicial, onde a substring começa a ser extraída;

O comprimento da substring que deve ser extraída.

A primeira posição de uma string é 0 (zero) e não 1 como você poderia


pensar.

Pois bem, vamos analisar o que a função substr() faz no nosso código:

Ela pega a string $stringLonga, ajusta a posição inicial em 0 (o início da


string) e para de extrair caracteres na quarta posição a partir da posição inicial.

O resultado acaba sendo 'Esta'. Se tivéssemos chamado echo() com


substr($strLonga, 7, 3), o resultado seria obviamente 'uma'.

Confira contando as posições na string e lembre-se: espaços são


caracteres!
EXPLODINDO UMA STRING

Explodir uma string significa quebrá-la em pedaços tendo como


referência um caractere que indica onde ela deve ser quebrada. Vejamos um
exemplo:

Bem, imagine que você tenha uma string delimitada por um determinado
caractere.

Uma URL, por exemplo. A URL poderia ser:

"http://www.nomeDoHost.com.br/dir/dir/nomeDoArquivo.ext".

Queremos obter apenas o nome do arquivo, então:

<?php
$Url="http://www.NomeDoHost.com.br/dir/NomeDoArq
uivo.ext"; $cacosDaUrl = explode("/", $Url);
$arrayReverso = array_reverse($cacosDaUrl);
echo($arrayReverso[0]);
74
PROGRAMAÇÃO EM PHP
?>

Primeiro definimos uma variável que contém a URL.

Como queremos apenas extrair o nome do arquivo desta URL, é melhor


dividir a string nos seus vários elementos.

É fácil perceber que estes elementos estão sendo separados por uma
barra (/) portanto, basta utilizar este 'separador' para dividir a string nos seus
componentes. É aí que entra a função explode().

A função explode() pede dois parâmetros. O primeiro é o caractere


separador e o segundo é a string que deve ser explodida.

Esta função retorna um array contendo todos os elementos encontrados


entre os separadores.

Guardamos este array na variável $cacosDaUrl. O array $cacosDaUrl é


devolvido pela função explode() da seguinte forma:

$cacosDaUrl[0] = "http:"
$cacosDaUrl[1] = www.NomeDoHost.com.br
$cacosDaUrl[2] = "dir‟"
$cacosDaUrl[3] = "NomeDoArquivo.ext"

Agora é só pegar o elemento com a chave 3 do array $cacosDaUrl e


pronto.

Porém, e sempre tem que existir um porém, se houver mais de um diretório


envolvido?
Coisas do tipo:

"http://www.NomeDoHost.com.br/dir1/dir2/NomeDoArquivo.ext"?

Então pegamos o elemento da chave 4. Mas, e se não soubermos de


antemão a posição do nome do arquivo? Raciocine: o nome do arquivo é
SEMPRE o último elemento do array.

Uma das formas de obtê-lo é calculando a chave do último elemento


contando o número de elementos.

Outra solução é inverter as posições dos elementos, ou seja, o último


será o primeiro (elemento 0), o penúltimo o segundo, e assim sucessivamente.

Assim temos a certeza da posição do nome do arquivo na chave 0. A


função count(), que devolve o número de elementos de um array você já
conhece.

Então, vamos dar uma olhada na segunda alternativa, a que foi utilizada no
exemplo.

Criamos a variável $arrayReverso para poder armazenar o valor de


retorno da função array_reverse().

Esta função faz exatamente o que estamos precisando.


75
PROGRAMAÇÃO EM PHP
Enviamos como parâmetro o array $cacosDaUrl e recebemos de volta
um array com todos os elementos invertidos, ou seja, o nome do arquivo estará
na posição 0.

Daí, para conferir, basta dar um echo() em $arrayReverso[0].

Chegamos ao final da quarta aula. Não esqueça de fazer os exercícios


propostos na apostila.

EXERCÍCIOS

1- Como podemos calcular a média de 4 avaliações?


_
_
_
_
_
_
_
_

2- Qual a função do comando if?

_
_
_
_
_
_
_
_

3- Qual a função do comando else?

_
_
_
_
_
_

4- Podemos inserir variáveis dentro de um echo?


_
_
_
_
_
_
_
_

76
PROGRAMAÇÃO EM PHP

5- Qual a diferença de uma string com aspas duplas e com aspas normais?

_
_
_

_
_

6- O que podemos utilizar para concatenar strings?

_
_
_
_
_
_

7- Qual a função do strtoupper?

_
_
_
_
_

8- Qual a função do strpad?

_
_
_
_
_
_

77
PROGRAMAÇÃO EM PHP
EXERCÍCIO DE FIXAÇÃO

1. Crie um arquivo em PHP chamado notas.php utilizando


Notepad++.
2. Salve ele na pasta phpteste.
3. Agora crie um código que exiba a média de um aluno, similar a
imagem abaixo e abra no navegador.

78
PROGRAMAÇÃO EM PHP
AULA 5

MANIPULAÇÃO DE TIPOS

O PHP não requer (ou suporta) a definição de tipo explicita na declaração


de variáveis: o tipo de uma variável é determinado pelo contexto em que a
variável é utilizada.

Isto significa que, se você assimila um valor string para a variável $var,
$var se torna uma string. Se você então assimilar um valor inteiro para $var,
ela se torna um inteiro.

Um exemplo da conversão automática do PHP é o operador de adição


'+'. Se qualquer um dos operadores for float, então todos os operadores são
avaliados como floats, e o resultado será um float.

De outra forma, se os operadores forem interpretados como inteiros


então o resultado será um inteiro.

Note que isso NÃO muda os tipos dos operadores: apenas muda em
como esses operadores são avaliados.

<?php
$foo =
"0"; // $foo eh string (ASCII 48)
$foo += 2; // $foo eh agora um interio (2)
$foo = $foo + 1.3; // $foo eh agora um float (3.3)
$foo = 5 + "10 pequenos porcos"; // $foo eh inteiro (15)
$foo = 5 + "10 minúsculos porcos"; // $foo eh inteiro (15)
?>

Nota: O comportamento de uma conversão automática para array é


lmente indefinida.

<?php
$a =
"1"; // $a é uma string
$a[0] = "f"; //
E com relação aos índices da string? O que acontece?
?>

Desde que o PHP (por razões históricas) suporta indexação de strings


através de utilizando a mesma sintaxe da indexação de arrays, o exemplo
acima nos deixa um problema: $a se tornou um array sendo o primeiro
elemento "f", ou será que "f" se tornou o primeiro caractere da string $a?

79
PROGRAMAÇÃO EM PHP

As versões atuais do PHP interpretam a segunda assimilação como


identificação de deslocamento na string, então $a se torna "f", o resultado desta
conversão automática, entretanto, pode ser considerada indefinida.

O PHP 4 introduziu a nova sintaxe de chaves para acessar caracteres


na string. Utilize esta sintaxe em vez do exemplo apresentado anteriormente:

Moldando Tipos - Type Casting

A moldagem de tipos no PHP funciona como no C: o nome de um tipo


desejado é escrito entre parênteses antes da variável em que se deseja a
moldagem.

As moldagens permitidas são:

(int), (integer) - molde para inteiro


(bool), (boolean) - molde para booleano
(float), (double), (real) - molde para número de ponto flutuante
(string) - molde para string
(array) - molde para array
(object) - molde para objeto

Note que tabulações e espaços são permitidos dentro dos parênteses,


então o seguinte são funcionalmente equivalentes:

80
PROGRAMAÇÃO EM PHP

Nota: Em vez de moldar uma variável para string, você também pode
englobar a variável entre aspas duplas

No PHP é possível converter a variável de um tipo para outro. Para isso


devemos utilizar os conversores de tipo, para fazer a conversão devemos
utilizar o tipo pra qual devemos converter entre parênteses antes do nome da
variável em que se deseja converter.

No PHP possuímos os seguintes conversores:

81
PROGRAMAÇÃO EM PHP

82
PROGRAMAÇÃO EM PHP

Conversão de dados para inteiros no PHP


Para converter um valor para inteiro, como vimos anteriormente, basta
utilizarmos um dos conversores de inteiro antes do valor. Observe o exemplo:

Conversão de float em inteiro:


Quando convertemos um número de float, ponto flutuante, para inteiro
ele sempre terá o seu valor truncado, ou seja, arredondado para baixo.
Observe:
<?php
$float = (int) 10.9;
var_dump( $float );
echo '<br />' . PHP_EOL;
$float2 = (int) 10.1;
var_dump( $float2 );
?>
Como você pode observar ambos os valores 10.9 e 10.1 foram convertidos
para 10.

A função var_dump() utilizada anteriormente, além de exibir o valor da


variável, mostrará também o tipo da variável como você verá ao testar os
exemplos. Já que estamos trabalhando com tipos de dados, é ideal sabermos
se o valor foi convertido ou não.

Conversão de string em inteiro:


A conversão de string para inteiro depende do formato da string, assim o
PHP avalia o formato da string caso não possua nenhum valor numérico será
convertido para 0 (zero).

Caso possua valor numérico em sua primeira posição o valor será


considerado, caso o valor não esteja na primeira posição, será desconsiderado.
Veja o exemplo
<?php
$string = (int) 'Muitas casas';
var_dump( $string ); // int(0)
echo '<br />' . PHP_EOL;
$string2 = (int) '10 casas aproximadamente';
var_dump( $string2 ); // int(10)
echo '<br />' . PHP_EOL;
$string3 = (int) 'Exatamente 10 casas';
var_dump( $string3 ); // int(0)
?>

83
PROGRAMAÇÃO EM PHP

Conversão de booleano em inteiro:


A conversão de booleano para string segue uma regra simples em que o
valor TRUE é definido como 1(um) e o valor FALSE é definido como 0(zero).
Observe:

<?php
$bool = (int) TRUE;
var_dump( $bool );
echo '<br />' . PHP_EOL;
$bool2 = (int) FALSE;
var_dump( $bool2 );
?>

Conversão de dados para float no PHP


A conversão para float como pode ser observado anteriormente na
tabela, é feita pelos conversores (float), (double) ou (real).

As regras de conversão para float seguem as mesmas que você acabou


de ver na conversão de dados para inteiros. Exceto na conversão para strings.

Conversão de string em float


Na conversão para float a string será avaliada como um ponto flutuante
se conter qualquer um dos caracteres '.', 'e', ou 'E', lembrando que a string
deve ser iniciada com um número.
Caso contrário será convertido para 0 (Zero), lembrando que este zero
será um float devido a conversão. Observe:
<?php
$string = (float) '1.75cm';
var_dump( $string ); // float(1.75)
echo '<br />' . PHP_EOL;
$string2 = (float) 'Ele possuia 1.75cm';
var_dump( $string2 ); // float(0)
?>
Conversão de dados para strings no PHP:

Para converter um dado para string você já deve estar imaginando que
basta utilizar o conversor (string) e é exatamente isto.

Conversão de booleano em string

Quando convertemos um valor booleano para string ocorre uma simples


regra, o valor TRUE será convertido na string 1 e o valor FALSE será
convertido em uma string vazia. Observe:

<?php
$bool = (string) TRUE;
var_dump( $bool ); // string(1) "1"
echo '<br />' . PHP_EOL;
$bool2 = (string) FALSE;
var_dump( $bool2 ); // string(0) ""
?>
84
PROGRAMAÇÃO EM PHP
Conversão de inteiro e float em string
Na conversão de inteiro e float o número será convertido para string
mantendo a sua representação. Observe:
<?php
$inteiro = (string) 150;
var_dump( $inteiro ); // string(3) "150"
echo '<br />' . PHP_EOL;
$float = (string) 1.77;
var_dump( $float ); // string(4) "1.77"
?>

Conversão de dados para booleano no PHP

Na conversão de dados para booleano os seguintes valores serão


considerados FALSE(falso):

O próprio booleano FALSE


O inteiro 0 (zero)
O ponto flutuante 0.0 (zero)
Uma string vazia e a string "0"

Qualquer outro valor será convertido em TRUE (verdadeiro), observe:

<?php
$bool = (bool) FALSE;
var_dump( $bool ); // bool(false)
echo '<br />' . PHP_EOL;
$inteiro = (bool) 0;
var_dump( $inteiro ); // bool(false)
echo '<br />' . PHP_EOL;
$float = (bool) 0.0;
var_dump( $float ); // bool(false)
echo '<br />' . PHP_EOL;
$string = (bool) '';
var_dump( $string ); // bool(false)
echo '<br />' . PHP_EOL;
$inteiro = (bool) 10;
var_dump( $inteiro ); // bool(true)
echo '<br />' . PHP_EOL;
$float = (bool) 1.0;
var_dump( $float ); // bool(true)
echo '<br />' . PHP_EOL;
$string = (bool) 'Uma string';
var_dump( $string ); // bool(true)
?>

85
PROGRAMAÇÃO EM PHP

Conversão automática de tipos de dados no PHP

Apesar de existirem os conversores que acabamos de ver, o PHP


também possui a conversão automática de tipos que funciona seguindo as
mesmas regras que acabamos de ver, observe.
<?php
$soma = 10 + 3.5;
var_dump( $soma ); // float(13.5)
echo '<br />' . PHP_EOL;
$soma = 10 + 7.0;
var_dump( $soma ); // float(17)
echo '<br />' . PHP_EOL;
$soma = 10 + FALSE;
var_dump( $soma ); // int(10)
echo '<br />' . PHP_EOL;
$soma = 1 + '7.5';
var_dump( $soma ); // float(8.5)
echo '<br />' . PHP_EOL;
$soma = 1 + '-7.5 graus celcius';
var_dump( $soma ); // float(-6.5)
echo '<br />' . PHP_EOL;
$soma = 1 + 'Luanito 20 anos';
var_dump( $soma ); // int(1)
echo '<br />' . PHP_EOL;
$soma = '20 anos de carreira' + 1;
var_dump( $soma ); // int(21)
?>

Como você pode observar se utilizarmos float e inteiro em uma operação


o resultado final será float, o valor FALSE possui o valor 0 (zero) os dados
seguiram se as mesmas regras de conversão, inclusive as strings que só as
iniciadas com valores numéricos são validas para operações matemáticas, ou
seja as regras válidas nas conversões de dados, também são aplicadas aqui
na conversão automática de tipos.

Não utilizamos os conversores para array e nem para objeto como você
pode observar, mais não se preocupe assim que estes dados forem estudados
mostraremos a conversão dos mesmos.

Estruturas de Controle:
Qualquer script PHP é construído por uma série de instruções.
Uma instrução pode ser uma atribuição, uma chamada de função, um
'loop', uma instrução condicional, ou mesmo uma instrução que não faz nada
(um comando vazio).
Instruções geralmente terminam com um ponto e vírgula.
Além disso, as instruções podem ser agrupadas em um grupo de
comandos através do encapsulamento de um grupo de comandos com chaves.

86
PROGRAMAÇÃO EM PHP
Um grupo de comandos é uma instrução também. Os vários tipos de
instruções são descritos neste capítulo.

If
A construção if é uma das mais importantes implementações de muitas
linguagens, incluindo o PHP.
Ela permite a execução condicional de fragmentos de código.
O PHP implementa uma estrutura if que é similar aquela do C:

if (expressao)
instrucoes

Uma expressão é avaliada por seu contexto Booleano.


Se a expressão for avaliada como TRUE, o PHP executará instruções, e
se for avaliado como FALSE, ele será ignorado.
Os exemplos a seguir mostrariam que a é maior que b se a variável $a
for maior que a variável $b:
<?php
if ($a > $b)
echo "a é maior que b";
?>
Normalmente você vai querer que mais que uma instrução seja
executada condicionalmente.
E é claro, não há necessidade de englobar cada instrução com uma
cláusula if. Em vez disso, você pode colocar várias instruções em um
agrupamento de comandos.
Por exemplo, este código mostraria que a é maior que b se $a for maior
que $b, e então atribuiria o valor de $a para $b:
<?php
if ($a > $b) {
echo "a é maior que b";
$b = $a;
}
?>

Comandos if podem ser aninhados infinitamente dentro de outros


comandos if, o que faz com que você complete a flexibilidade para a execução
condicional de várias partes do seu programa.

Else
Normalmente você vai querer executar uma instrução se certa condição
for encontrada, e uma instrução diferente se a condição não for encontrada.
Isto é o que o else faz. else estende um comando if para executar uma
instrução caso a expressão no comando if seja avaliada como FALSE.

87
PROGRAMAÇÃO EM PHP

Por exemplo, o código a seguir mostraria a é maior que b se $a for maior


que $b, e a NÃO é maior que b caso contrário:
<?php
if ($a > $b) {
echo "a é maior que b";
} else {
echo "a NÃO é maior que b";
}
?>

O comando else so e executado havendo qualquer expressão elseif,


como FALSE também se a expressão if for como False, e avaliada somente
se todas elas forem avaliadas.

Elseif/else if
elseif, como seu nome sugere, é uma combinação de if e else. Da
mesma forma que o else, ele estende um comando if para executar uma
instrução diferente no caso de a expressão if original ser avaliada como
FALSE.
Porém, ao contrário de else, ele executará aquela expressão alternativa
somente se a expressão condicional do elseif for avaliada como TRUE.
Por exemplo, o código a seguir mostraria a é maior que b, a é igual a b ou
a é menor que b:
<?php
if ($a > $b) {
echo "a é maior que b";
} elseif ($a == $b)
{ echo "a é igual
a b";
} else {
echo "a é menor que b b";
}
?>
Pode haver vários elseifs dentro da mesma instrução if. A primeira
expressão elseif (se houver) que for avaliada como TRUE será executada.
No PHP, você também pode escrever 'else if' (em duas palavras) e o
comportamento será idêntico a um 'elseif' (em uma só palavra).
O significado sintático é ligeiramente diferente (se você está
familiarizado com C, ele tem o mesmo comportamento), mas no final das
contas ambos teriam exatamente o mesmo comportamento.

88
PROGRAMAÇÃO EM PHP
O comando elseif só é executado se a expressão if precedente e
quaisquer expressões elseif anteriores forem avaliadas como FALSE, e a
expressão elseif atual for avaliada como TRUE.
Nota: Note que elseif e else if somente será considerado exatamente o
mesmo quando usando chaves.
Quando usando dois pontos para definir sua condição if/elseif, você não
deve separar else if em duas palavras, ou o PHP falhará com um parse error.
<?php

/* Método incorreto: */
if($a > $b):
echo $a." is greater than ".$b;
else if($a == $b): // Não compilará.
echo "The above line causes a parse error.";
endif;

/* Método correto: */
if($a > $b):
echo $a." is greater than ".$b;
elseif($a == $b): // Note a combinação das palavras.
echo $a." equals ".$b;
else:
echo $a." is neither greater than or equal to ".$b;
endif;

?>

Sintaxe alternativa para estruturas de controle


O PHP oferece uma sintaxe alternativa para algumas das suas
estruturas de controle: if, while, for, foreach e switch.
Em cada caso, a forma básica da sintaxe alternativa é mudar o sinal de
abertura para dois-pontos (:) e o sinal de fechamento para endif;, endwhile;,
endfor;, endforeach; ou endswitch;, respectivamente.
<?php if ($a == 5): ?>
A é igual a 5
<?php endif; ?>
No exemplo acima, o bloco HTML "A é igual a 5" está aninhado dentro
de uma instrução if escrito na sintaxe alternativa. O bloco HTML será mostrado
somente se $a é igual a 5.
A sintaxe alternativa se aplica a else e elseif também. A seguir temos
uma estrutura if com elseif e else no formato alternativo:
<?php
if ($a == 5):
echo "a igual a 5";
echo "...";
elseif ($a == 6):
89
PROGRAMAÇÃO EM PHP

echo "a igual a 6";


echo "!!!";
else:
echo "a não é nem 5 nem 6";
endif;
?>

While
Loops while são o tipo mais simples de criar um 'loop' em PHP. Eles se
comportam como seus compatíveis em C.
O formato básico de um comando while é:
while (expressao)
instrucoes
O significado de um comando while é simples.
Ele pede que o PHP execute os comandos aninhados repetidamente,
enquanto a expressão do while é avaliada como TRUE.
O valor da expressão é verificado cada vez que se passa no começo do
'loop', desta forma, mesmo que este valor mude durante a execução do(s)
comando(s) aninhado(s), a execução não parará até que o fim da iteração
(cada vez que o PHP executa os comandos dentro do 'loop' é uma iteração).
Às vezes, se a expressão while é avaliada como FALSE logo no início,
o(s) comando(s) aninhado(s) não será(ão) rodado(s) nem uma vez sequer.
Como no comando if, você pode agrupar múltiplos comandos dentro do
mesmo laço while englobando um grupo de instruções com chaves, ou usando
a sintaxe alternativa:
while (expressao):
instrucoes
...
endwhile;
Os exemplos a seguir são idênticos, e ambos imprimem números de 1 até
10:
<?php
/* exemplo 1 */

$i = 1;
while ($i <= 10) {
echo $i++; /* o valor impresso será
$i depois do acréscimo
(post-increment) */
}

/* exemplo 2 */

$i = 1;
while ($i <= 10):
echo $i;
90
PROGRAMAÇÃO EM PHP

$i++;
endwhile;
?>
Do-while
Loops do-while são bem similares aos loops while, exceto pelo fato de
que a condição é verificada no fim de cada iteração em vez de no começo.
A diferença principal dos loops while regulares é que a primeira iteração
de um loop do-while é certamente executada (a condição só é verificada no fim
da iteração) enquanto que ele pode não rodar necessariamente em um loop
while normal.
A condição é verificada no começo de cada iteração, se ela é avaliada
como FALSE logo no começo, a execução do loop terminaria imediatamente.
Há apenas uma sintaxe para loops do-while:
<?php
$i = 0;
do {
echo $i;
} while ($i >
0); ?>
O loop acima rodaria exatamente uma vez, desde que depois da
primeira iteração, quando a condição é verificada, ela é avaliada como FALSE
($i não é maior que zero 0) e a execução do loop termina.
Usuários avançados de C podem estar familiarizados com o uso
diferenciado do loop do-while, para permitir o fim da execução no meio dos
blocos de código, englobando-os com do-while (0), e usando a instrução break.
O fragmento de código a seguir demonstra isso:
<?php
do {
if ($i < 5) {
echo "i não é grande o suficiente";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i está Ok";

/* process i */

} while
(0); ?>
Não se preocupe se você não entendeu isto da forma certa ou de jeito
nenhum. Você pode codificar scripts simples ou mesmo poderosos sem usar
esse 'recurso'.

91
PROGRAMAÇÃO EM PHP
For
Loops do tipo for são os laços mais complexos em PHP.
Eles se comportam como os seus compatíveis em C. A sintaxe de um loop
for é:
for (expr1; expr2; expr3)
instrucoes

A primeira expressão (expr1) é avaliada (executada) uma vez


incondicionalmente no começo do loop.
No começo de cada iteração, expr2 é avaliada. Se ela é avaliada como
TRUE, o loop continua e o(s) comando(s) aninhado(s) é(são) executado(s). Se
ela é avaliada como FALSE, a execução do 'loop' termina.
No fim de cada iteração, expr3 é avaliada (executada).
Cada uma das expressões pode ser vazia ou conter múltiplas
expressões separadas por vírgulas.
Em expr2, todas as expressões separadas por vírgula são avaliadas,
mas o resultado é obtido pela última parte. expr2 vazia significa que o loop
pode rodar indefinidamente (PHP considera-a implicitamente como TRUE,
como em C).

Isto pode não ser tão inútil quanto você pode pensar, pois
frequentemente você pode querer terminar o 'loop' usando uma instrução break
condicional em vez de usar a expressão-verdade do for.
Considere os seguintes exemplos. Todos eles mostram números de 1 até
10:
<?php
/* exemplo 1 */

for ($i = 1; $i <= 10; $i++) {


echo $i;
}

/* exemplo 2 */

for ($i = 1; ; $i++) {


if ($i > 10) {
break;
}
echo $i;
}

/* exemplo 3 */

$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo $i;
92
PROGRAMAÇÃO EM PHP

$i++;
}
/* exemplo 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i,


$i++); ?>
Obviamente, o primeiro exemplo parece ser o mais bonito (ou talvez o
quarto), mas você pode perceber que a possível utilização de expressões
vazias em laços for se torna prático em algumas ocasiões.

O PHP também suporta a "sintaxe de dois-pontos" alternativa para laços


for:
for (expr1; expr2; expr3):
instrucoes;
...;
endfor;

93
PROGRAMAÇÃO EM PHP

EXERCÍCIO

1- O PHP requer a definição de tipo explicita na declaração de variáveis?

2- O comportamento de uma conversão automática para array é definida ou


indefinida?

3- Cite 3 tipos de moldagens permitidas em PHP:

4- No PHP, é permitido converter uma variável de um tipo para outro?

5- Os scripts são construídos pelo que?

94
PROGRAMAÇÃO EM PHP

6- Instruções geralmente terminam com o que?

7- Qual a função do if?

8- Qual a função do elseif?

9- Qual a função do else?

95
PROGRAMAÇÃO EM PHP

EXERCÍCIO DE FIXAÇÃO

Utilizando a expressão for crie um código que efetue o


procedimento demonstrado no resultado final da imagem abaixo.
Salve ele com o nome de testefor.

96
PROGRAMAÇÃO EM PHP

AULA 06

Na aula de hoje aprenderemos um pouco mais sobre estruturas de


controle.

Foreach
O PHP4 inclui um construtor foreach, muito parecido com o Perl e outras
linguagens.
Isto oferece uma maneira fácil de iterar sobre matrizes. foreach funciona
somente com arrays, e lançará um erro se tentar utilizá-lo em uma variável de
qualquer tipo diferente ou em variáveis não inicializadas.
Há duas sintaxes; a segunda é uma abreviatura, mas bem útil do que
primeira:
foreach (expressao_array as $valor)
instruções
foreach (expressao_array as $chave => $valor)
instruções
A primeira forma varre uma dada matriz dada por expressao_array.
Em cada 'loop', o valor do elemento corrente é atribuído a $valor e o
ponteiro interno da matriz é avançado em uma posição (assim, na próxima
iteração você estará olhando para o próximo elemento).
A segunda forma faz a mesma coisa, exceto pelo fato de que a
chave do elemento atual será atribuída à variável $chave em cada
iteração.
A partir do PHP5, é possível iterar objetos também.
Nota: Quando o foreach inicia sua primeira execução, o ponteiro
interno da matriz é zerado automaticamente para o primeiro elemento do
array.
Isto significa que você não precisa chamar reset() antes de um loop
foreach.
Nota: Note também que foreach opera sobre uma cópia do array
especificado, não o próprio array. foreach é semelhante um array de
ponteiros.
Não confie no ponteiro do array durante ou após o foreach sem resetá-lo.
A partir do PHP5, você pode modificar facilmente os
elementos da matriz precedendo $value com &.
Isto irá definir uma referência ao invés de copiar o valor.
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
97
PROGRAMAÇÃO EM PHP
// $arr is now array(2, 4, 6, 8)

unset($value); // quebra a referência com o último


elemento ?>

Isto é possível apenas se a matriz iterada puder ser referenciada (isto é,


uma variável).
Nota: foreach tem a habilidade de evitar mensagens de erro com '@'.

Você pode ter notado que os seguintes itens são funcionalmente idênticos:
<?php
$arr = array("um", "dois", "três");
reset ($arr);
while (list(, $value) = each ($arr)) {
echo "Valor: $value<br />\n";
}

foreach ($arr as $value) {


echo "Valor: $value<br />\n";
}
?>

Os seguintes também são funcionalmente idênticos:


<?php
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each ($arr)) {
echo "Chave: $key; Valor: $value<br />\n";
}

foreach ($arr as $key => $value) {


echo "Chave: $key; Valor: $value<br />\n";
}
?>
Mais alguns exemplos para demonstrar os usos:
<?php
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each ($arr)) {
echo "Chave: $key; Valor: $value<br />\n";
}

foreach ($arr as $key => $value) {


echo "Chave: $key; Valor: $value<br />\n";
}
?>

Mais alguns exemplos para demonstrar os usos:

<?php
/* exemplo foreach 1: somente valores */

98
PROGRAMAÇÃO EM PHP
$a = array(1, 2, 3, 17);

foreach ($a as $v) {


echo "Valor atual de \$a: $v.\n";
}

/* exemplo foreach 2: valores (com a sua notação de chave de acesso


mostrado para il ustração) *
$a = array(1, 2, 3, 17);

$i = 0; /* para exemplo somente */

foreach ($a as $v) {


echo "\$a[$i] => $v.\n";
$i++;
}

/* exemplo foreach 3: chaves e valores */

$a = array (
"um" => 1,
"dois" => 2,
"três" => 3,
"dezessete" => 17
);

foreach ($a as $k => $v) {


echo "\$a[$k] => $v.\n";
}

/* exemplo foreach 4: arrays multidimensionais */

$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {


foreach ($v1 as $v2) {
echo "$v2\n";
}
}

/* exemplo foreach 5: arrays dinâmicos */

foreach (array(1, 2, 3, 4, 5) as $v) {


echo "$v\n";
}
?>

99
PROGRAMAÇÃO EM PHP

Break
break cancela a execução do comando for, foreach, while, do-while ou
switch atual.
break aceita um argumento numérico opcional que diz a ele quantas
estruturas aninhadas englobadas devem ser quebradas.

<?php
$arr = array('um', 'dois', 'três', 'quatro',
'PARE', 'cinco'); while (list (, $val) = each
($arr)) {
if ($val == 'PARE') {
break; /* Você poderia colocar 'break 1;' aqui. */
}
echo "$val<br />\n";
}

/* Utilizando o argumento opcional. */

$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "No 5<br />\n";
break 1; /* Sai somente do switch. */
case 10:
echo "No 10; saindo<br />\n";
break 2; /* Sai do switch e while. */
default:
break;
}
}
?>

100
PROGRAMAÇÃO EM PHP

Continue
continue é usado dentro de estruturas de loops para saltar o resto da
iteração do loop atual e continuar a execução na avaliação e no início da
próxima iteração.
Nota: Note que no PHP a instrução switch é considerada uma
estrutura de loop quando relacionada ao comando continue.
continue aceita um argumento numérico opcional que diz a ele de
quantos níveis de loops aninhados ele deve saltar até o fim.
<?php
while (list ($key, $value) = each ($arr)) {
if (!($key % 2)) { // pula itens pares
continue;
}
do_something_odd ($value);
}

$i = 0;
while ($i++ < 5) {
echo "Fora<br />\n";
while (1) {
echo "&nbsp;&nbsp;Meio<br />\n";
while (1) {
echo "&nbsp;&nbsp;Dentro<br />\n";
continue 3;
}
echo "Isto nunca será exibido.<br />\n";
}
echo "Nem isso.<br />\n";
}
?>
Omitindo o ponto e vírgula depois do continue pode resultar em
confusão. Este é um exemplo do que você não deve fazer.
<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>

0
1
3
4

Mas esse script somente exibirá:


2

101
PROGRAMAÇÃO EM PHP

Porque o valor de retorno da chamada a print() é int(1), e então ele se


parecerá como o argumento numérico opcional mencionado acima.

Switch
A instrução switch é similar a uma série de instruções IFs seguidas.
Em muitas ocasiões, você poderá ter que comparar a mesma variável
(ou expressão) com muitos valores diferentes, executando códigos diferentes
dependendo com qual valor ele se encaixar.
É exatamente para isso que a instrução switch faz.
Nota: Note que diferentemente de outras linguagens, a instrução
continue se aplica a switch e age similarmente a um break.
Se você tem um switch dentro de um loop e deseja continuar para a
próxima iteração do loop, use continue 2.
Nota: Note que switch/case fazem comparações soltas.
Os exemplos seguintes mostram duas maneiras diferentes de escrever a
mesma coisa, uma utilizando uma série de ifs e elseifs e a outra utilizando a
instrução switch:
Exemplo #1: Estrutura switch
<?php
if ($i == 0) {
echo "i igual a 0";
} elseif ($i == 1)
{ echo "i igual
a 1";
} elseif ($i == 2)
{ echo "i igual
a 2";
}

switch ($i) {
case 0:
echo "i igual a 0";
break;
case 1:
echo "i igual a 1";
break;
case 2:
echo "i igual a 2";
break;
}
?>
Exemplo #2: A estrutura switch permite uso de strings

<?php
switch ($i) {
case "apple":
echo "i is apple";
break;
102
PROGRAMAÇÃO EM PHP

case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}
?>
É importante entender como a instrução switch funciona para evitar
enganos.
A instrução switch executa linha a linha (atualmente, instrução a
instrução). No início, nenhum código é executado.
Somente quando uma instrução case é encontrada com um valor que
combina com a expressão do switch faz com que o PHP execute as instruções
a partir daí.
O PHP continua executando as instruções até o fim do bloco switch ou
na primeira vez que encontrar uma instrução break.
Se você não escrever uma instrução break no fim das instruções case, o
PHP continuará executando os cases seguintes.
Exemplo:
<?php
switch ($i) {
case 0:
echo "i igual a 0";
case 1:
echo "i igual a 1";
case 2:
echo "i igual a 2";
}
?>
Aqui, se $i é igual à zero, o PHP executará todas as instruções echo!
Se $i é igual a 1, o PHP executará os últimas duas instruções echo, e
somente se $i for igual a 2, você terá o comportamento 'esperado' apenas onde
'i igual a 2' será mostrado.

Então é importante não se esquecer das instruções break (e às vezes


não colocá-las para obter esse resultado em certas circunstâncias).

Em uma instrução switch, a condição somente será avaliada e resultado


comparado para cada instrução case.

103
PROGRAMAÇÃO EM PHP
Em uma instrução elseif, a condição é avaliada novamente. Se sua
condição é mais complicada que uma simples comparação e/ou é dentro de um
loop, um switch é mais rápido.
Um case pode não ter nenhuma instrução dentro, o que simplesmente
passa o controle para o próximo case.
<?php
switch ($i) {
case 0:
case 1:
case 2:
echo "i é menor que 3 mas não negativo";
break;
case 3:
echo "i é 3";
}
?>
Um case especial é o default. Esse case é executado quando nenhum
outro case combina. Por exemplo:
<?php
switch ($i) {
case 0:
echo "i igual a 0";
break;
case 1:
echo "i igual a 1";
break;
case 2:
echo "i igual a 2";
break;
default:
echo "i não é igual a 0, 1 ou 2";
}
?>
A expressão avaliada pelo case precisa ser um tipo simples, ou seja,
inteiros, números de ponto flutuante e strings.
Arrays ou objetos não podem ser utilizados a não ser que eles
impliquem num tipo simples.
A sintaxe alternativa para estruturas de controle é suportada para os
switches. Para maiores informações, veja Sintaxe alternativa para estruturas de
controle.
<?php
switch ($i):
case 0:
echo "i igual a 0";
break;
case 1:
echo "i igual a 1";
break;
104
PROGRAMAÇÃO EM PHP

case 2:
echo "i igual a 2";
break;
default:
echo "i não é igual a 0, 1 ou 2";
endswitch;
?>

Declare
O construtor declare é utilizado para configurar diretivas de execução para
blocos de
código.
A sintaxe do declare é similar à sintaxe de outros construtores de controle.
declare (diretiva)
instrucao
A seção diretiva permite o comportamento do bloco declare a ser
configurado.
Atualmente somente uma diretiva é reconhecida: a diretiva ticks.
A parte instrução do bloco declare será executada.
Como ela é executada e que efeitos colaterais que podem ocorrem
durante a execução dependem da configuração diretiva.
O construtor declare também pode ser utilizado no escopo global,
afetando todo o código que se seguir.
Ticks
Um tick é um evento que ocorre para cada N níveis de instruções
executadas pelo interpretador com o bloco declare.
O valor para N é especificado utilizando ticks=N nos blocos declare
das

seções diretiva.

O(s) evento(s) que ocorre(m) em cada tick são especificados utilizando


register_tick_function(). Veja o exemplo abaixo para maiores detalhes.
Note que mais de um evento pode ocorrer em cada tick.
Exemplo #1 Histórico de um trecho de código PHP

<?php
// Uma função que grava o tempo entre as chamadas
function profile ($dump = FALSE)
{
static $profile;

// Retorna os tempos preservados no histórico, então apaga if


($dump) {

105
PROGRAMAÇÃO EM PHP

$temp = $profile;
unset ($profile);
return $temp;
}

$profile[] = microtime ();


}

// Ativa o manipulador do tick


register_tick_function("profile");

// Inicializa a função antes de declarar o bloco


profile();

// Roda um trecho de código, disparando um tick a cada duas instruções


declare(ticks=2) {
for ($x = 1; $x < 50; ++$x) {
echo similar_text(md5($x), md5($x*$x)), "<br />;";
}
}

// Mostra os dados guardados no histórico


print_r(profile (TRUE));
?>

No exemplo acima, o bloco 'declare' grava os tempos a cada segundo


nível dentro das instruções no bloco enquanto executam.

Esta informação pode ser utilizada para encontrar áreas lentas em


segmentos particulares de código.

Este processo pode ser realizado de outras formas, mas a utilização de


ticks é mais conveniente e fácil de programar.

Ticks são idealizados para debug, implementação de multitask simples,


processos de I/O em background e afins.

Return
Se chamada em uma função, a instrução return() termina imediatamente
a execução da função atual e retorna seu argumento como o valor da função.
return() também termina a execução de uma instrução eval() ou de um script.
Se chamada no escopo global, a execução do script atual será
terminada. Se o arquivo do script atual foi incluído com include() ou require(),
então a execução é devolvida para o arquivo chamador.
Especificamente para arquivos de script incluídos com include(), o valor
fornecido para return() será devolvido como o valor da chamada include().

106
PROGRAMAÇÃO EM PHP
Se return() for chamado do arquivo de script principal, então o programa
pára. Se o arquivo de script atual é o configurado em auto_prepend_file ou
auto_append_file do php.ini, então a execução desses scripts é finalizada.
Nota: Note que return() é um construtor de linguagem e não uma função,
e parênteses em volta do argumento não é requerido. É comum deixa-los, e
você atualmente deve fazê-lo, já que o PHP tem menos trabalho para fazer
neste caso.
Nota: Você jamais deve usar parênteses em torno da sua variável
retornada ao retornar por referência, já que isto não irá funcionar.
Você pode retornar apenas variáveis por referência, não o resultado de um
comando.

Se você usar return ($a); então você não esta retornando uma variável,
mas o resultado da expressão ($a) (o qual é, claro, o valor de $a).

Require( )
A instrução require() inclui e avalia um arquivo específico.
require() e include() são idênticos em todas as formas exceto pela
manipulação de erros. Ambas produzem um Warning, mas require() resultará
em um Fatal Error.
Em outras palavras, não hesite em utilizar require() se na falta de um
arquivo quiser parar o processamento da página. include() não se comporta da
mesma maneira, e o script poderá continuar nessa situação.
Em todo caso, vale a pena confirmar a configuração da diretiva
include_path.
Exemplo #1 Exemplos simples de require()s

<?php
require 'prepend.php';
require $somefile;
require ('somefile.txt');
?>
Nota: Até o PHP 4.0.2, havia o seguinte comportamento: require()
sempre tentará ler o arquivo informado, mesmo que a linha do require nunca
seja executada.
É por isso que instruções condicionais não afetam require(). Entretanto,
se a linha onde ocorre o require() não for executada, nada do código incluído
do arquivo também será.
Similarmente, estruturas de loop não afetam o funcionamento do require().

107
PROGRAMAÇÃO EM PHP
Mas o código incluído pela função será submetida ao loop. A instrução
require() apenas ocorre uma vez.
Nota: Este é um construtor de linguagem e não uma função, por isso não
é possível chamá-lo através de funções variáveis.

Aviso

As versões Windows do PHP anteriores ao PHP 4.3.0 não suportam


acesso a arquivos remotos através desta função, mesmo se allow_url_fopen
estiver ativado.

Include( )
A instrução include () inclui e avalia o arquivo informado.
Esses dois construtores são idênticos à exceção de como eles
manipulam erros. Ambas produzem um Warning, mas require() resultará em
um Fatal Error.
Em outras palavras, utilize require() se você deseja que um arquivo
faltando interrompa o processamento da página. include() não se comporta da
mesma maneira, permitindo que o script continue nessas situações.
Em todo caso, vale a pena confirmar a configuração da diretiva
include_path.
Esteja avisado que um erro de interpretação no arquivo incluído não
causa a parada do processamento em versões do PHP anteriores a PHP 4.3.5.
A partir desta versão, causa.
Arquivos a incluir são procurados primeiramente no include_path relativo
ao diretório atual de trabalho, e então no diretório atual do script. Por exemplo,
se seu include_path é libraries, o diretório atual é /www/, se você incluiu
include/a.php e há um b.php nesse arquivo, b.php será procurado primeiro em
/www/libraries/ e somente depois em /www/include/.
Se o nome do arquivo começa com ./ ou ../, ele é procurado apenas no
diretório atual.
Quando um arquivo é incluído, seu código entra no escopo de variável
da linha onde a inclusão ocorre.
Qualquer variável disponível da linha onde a chamada da inclusão
ocorre estará disponível para o arquivo incluído, daquele ponto em diante.
Entretanto, todas as funções e classes definidas no arquivo incluído tem um
escopo global.
Exemplo #1 Exemplos de include()s simples

108
PROGRAMAÇÃO EM PHP

variaveis.php
<?php

$cor = 'verde';
$fruta = 'maçã';

?>
teste.php
<?php

echo "Uma $fruta $cor"; // Uma

include 'vars.php';

echo "Uma $fruta $cor"; // Uma maçã verde

?>
Se o include ocorre dentro de uma função do arquivo principal, então
todo o código incluído será executado como se ele tivesse sido definido dentro
daquela função.
Da mesma forma, ele seguirá o escopo de variáveis da função. Uma
exceção para esta regra são as constantes mágicas que são avaliadas pelo
parser antes dos includes ocorrerem.
Exemplo #2 Incluindo dentro de funções

<?php

function foo()
{
global $cor;

include 'variaveis.php';

echo "Uma $fruta $cor";


}
/* variaveis.php está no escopo de foo(), *
.* então $fruta NÃO está disponível fora de *
.* seu escopo. $cor estará porque ela foi *
.* declarada como global */

foo(); // Uma maçã verde


echo "A $fruta $cor"; // Uma maçã

?>
Quando um arquivo é incluído, o interpretador sai do modo PHP e entra
no modo HTML (no começo do arquivo incluído), e alterna novamente no seu
fim.
109
PROGRAMAÇÃO EM PHP
Por isso, qualquer código dentro do arquivo incluído que precisa ser
executado como código PHP tem de ser delimitado por tags válidas de abertura
e fechamento.
Se "URL fopen wrappers" estão ativas no PHP (normalmente na
configuração default), você pode especificar um arquivo utilizando uma URL
(via HTTP ou qualquer outro wrapper suportado) em vez de uma caminho local.
Se o servidor apontado interpreta o arquivo informado como código
PHP, variáveis podem ser passadas ao arquivo incluído na URL de requisição
como num HTTP GET.
Isto não é necessariamente a mesma coisa que incluir o arquivo e
compartilhar o escopo de variável do arquivo principal: o script será executado
no servidor remoto e apenas seu resultado será incluído no script local.
Aviso
As versões Windows do PHP anteriores ao PHP 4.3.0 não suportam
acesso a arquivos remotos através desta função, mesmo se allow_url_fopen
estiver ativado.
Exemplo #3 include() através de HTTP

<?php

/* Este exemplo assume que www.exemplo.com está configurado para inter


pretar
* arquivos .php mas não .txt. Além, 'Funciona' aqui significa que as
* variáveis $foo e $bar estão disponíveis no arquivo incluído */

// Não funciona: arquivos txt não são manipulados em www.example.com c


omo PHP
include 'http://www.exemplo.com/arquivo.txt?foo=1&bar=2';

// Não funciona: procura por um arquivo chamado 'arquivo.php?foo=1&bar


=2' no
// sistemas de arquivo local.
include 'arquivo.php?foo=1&bar=2';
// Funciona.
include 'http://www.exemplo.com/arquivo.php?foo=1&bar=2';
$foo = 1;
$bar = 2;
include 'arquivo.txt'; // Funciona.
include 'arquivo.php'; // Funciona.

?>
Aviso

Security Warning
O arquivo remoto pode ser processado pelo servidor remoto
(dependendo da extensão do arquivo e do fato de o servidor remoto executar o
PHP ou não), mas ainda tem de produzir um script PHP válido porque ele será
processado pelo servidor local.

110
PROGRAMAÇÃO EM PHP
Se o arquivo do servidor remoto deve ser processado lá e apenas
exibido, a função, readfile () é muito melhor para ser usada.
Entretanto, um cuidado especial deve ser tomado para se assegurar que
o script remoto irá produzir um código válido e desejado.
Manipulando retornos: é possível executar um comando return() dentro
de um arquivo incluído para terminar o processamento naquele arquivo e
retornar para o script que o chamou.
Também é possível retornar valores dos arquivos incluídos. Você pode
usar o valor de um chamado include como você faria com uma função normal.
Isto não é, entretanto, possível ao incluir arquivos remotos a menos que a
saída do arquivo remoto tenha tags de início e final do PHP válidas (como
qualquer arquivo local).
Você pode declarar as variáveis necessárias dentro destas tags e elas
serão introduzidas em qualquer ponto que o arquivo seja incluído.
Devido a include() ser um construtor especial da linguagem, parêntesis
não são necessários ao redor do seu argumento. Tenha cuidado ao comparar o
valor de retorno.
Exemplo #4 Comparando o valor de retorno de include

<?php

// não funciona, avaliado como(('vars.php') == 'OK'), ex, include('') if


(include('vars.php') == 'OK') {
echo 'OK';

}
// funciona
if ((include 'vars.php') == 'OK') {
echo 'OK';
}
?>
Exemplo #5 Instruções include() e return()

return.php
<?php
$var = 'PHP';
return $var;
?>
noreturn.php
<?php
$var = 'PHP';
?>
testreturns.php
<?php

111
PROGRAMAÇÃO EM PHP

$foo = include 'return.php';


echo $foo; // imprime 'PHP'
$bar = include 'noreturn.php';
echo $bar; // imprime 1
?>
$bar assimila o valor 1 porque a inclusão foi realizada com sucesso.
Verifique a diferença entre os exemplos.
O primeiro utiliza return() dentro do arquivo incluído enquanto que o outro
não.
Se houverem funções definidas no arquivo incluído, elas podem ser
usadas no arquivo principal independentemente se elas foram antes de return()
ou depois.
Se o arquivo for incluído duas vezes, o PHP5 causa um erro fatal porque
as funções já foram declaradas, em quanto o PHP4 não reclama sobre funções
definidas após return().
É remendado usar include_once() ao invés de conferir se o arquivo já foi
incluído e condicionalmente retornar dentro do arquivo incluído.
Outra maneira de "incluir" um arquivo PHP em uma variável é capturar a
saída usando Funções de Controle de Saída com include(). Por exemplo:
Exemplo #6 Usando o buffer de saída para incluir um arquivo PHP em uma
string

<?php
$string = get_include_contents('somefile.php');

function get_include_contents($filename) { if
(is_file($filename)) {
ob_start();
include $filename;
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
return false;
}
?>

112
PROGRAMAÇÃO EM PHP
Require_once()
A instrução require_once () incluí e avalia o arquivo especificado durante
a execução do script. Seu comportamento é similar ao da instrução require (), a
não ser que o arquivo informado já tenha sido incluído, não refazendo a
operação novamente.
require_once() pode ser utilizado nos casos em que o mesmo arquivo
pode acabar sendo incluído mais de uma vez durante a execução de um script
em particular, quando na verdade ele só pode ser incluído apenas uma, para
evitar problemas com redefinições de funções, alterações nos valores de
variáveis, etc.
Os valores de retorno são os mesmos que include (). Se o arquivo já
tiver sido incluído, esta função retorna TRUE
Nota: require_once() foi acrescentado a partir PHP 4.0.1
Nota: Esteja avisado que o comportamento de require_once () e
include_once () pode não ser o que você espera em um sistema operacional
insensitivo ao caso (como o Windows).
Este funcionamento mudou no PHP5 - o caminho é normalizado
primeiro, assim C:\PROGRA~1\A.php é realizado como o mesmo que
C:\Program Files\a.php assim o arquivo é requerido apenas uma vez.
Aviso
As versões Windows do PHP anteriores ao PHP 4.3.0 não suportam
acesso a arquivos remotos através desta função, mesmo se allow_url_fopen
estiver ativado.
Include_once()
A instrução include_once() inclui e avalia o arquivo especificado durante
a execução de um script. Seu comportamento é similar a instrução include(), a
não ser que o arquivo informado já tenha sido incluído, não refazendo a
operação novamente.
Como o nome sugere, ele será incluído apenas uma vez.
include_once() pode ser utilizado nos casos em que o mesmo arquivo
pode acabar sendo incluído mais de uma vez durante a execução de um script
em particular, quando na verdade ele só pode ser incluído apenas uma para
evitar problemas com redefinições de funções, alterações nos valores de
variáveis, etc.
Nota: include_once() foi acrescentado a partir PHP 4.0.1.
Nota: Esteja avisado que o comportamento de require_once() e
include_once() pode não ser o que você espera em um sistema operacional
insensitivo ao caso (como o Windows).
Exemplo #1 include_once() não diferencia maiúsculas e
minúsculas no Windows <?php
include_once "a.php"; // isto irá incluir a.php
include_once "A.php"; // isto irá incluir a.php novamente no Windows!
(Apenas PHP 4)
?>

113
PROGRAMAÇÃO EM PHP
Este funcionamento mudou no PHP5 - o caminho é normalizado
primeiro, assim C:\PROGRA~1\A.php é realizado como o mesmo que
C:\Program Files\a.php pois o arquivo é incluído apenas uma vez.
Aviso

As versões Windows do PHP anteriores ao PHP 4.3.0 não suportam


acesso a arquivos remotos através desta função, mesmo se allow_url_fopen
estiver ativado.
EXERCÍCIOS
1- foreach funciona somente com o que?

2- O que acontece quando o foreach inicia sua primeira execução?

3- Qual a função do break?

4- Continue é usado para que?

5- A instrução switch é similar à que?

114
PROGRAMAÇÃO EM PHP

6- O construtor declare é utilizado para que?

7- A instrução return é responsável pelo que?

8- O que faz a instrução require()?

9- O que faz a instrução include()?

10- O que faz a instrução require_once()?

11- O que faz a função include_once()?

115
PROGRAMAÇÃO EM PHP

12- Quantas vezes o include_once() será inserido?

EXERCÍCIO DE FIXAÇÃO

1- O que ocorre em cada loop do foreach?

2- O que acontece se o foreach for utilizado com alguma variável diferente de


array?

3- Nós precisamos chamar o reset() antes de um loop foreach?

4- A opção switch funciona para quê?

5- O que é um tick?

116
PROGRAMAÇÃO EM PHP

6- Qual a diferença de require() e include()?

7- A estrutura loop() afeta o funcionamento do require()?

8- O que podemos fazer se "URL fopen wrappers" estiverem ativas no PHP?

9- Quantas vezes o require_once() pode ser utilizado?

117
PROGRAMAÇÃO EM PHP
AULA 7

Na aula de hoje iremos demonstrar as funcionalidades da linguagem


PHP no tratamento de vetores e matrizes.

As principais funções de manipulação de vetores serão demonstradas


em exemplos práticos.

O tratamento de vetores é utilizado em programação para diversas tarefas.

No entanto, pode se citar como primordiais no tratamento de


informações recebidas de um banco de dados, no recebimento de formulários
enviados à página e na manipulação de variáveis globais, como a $_SESSION.

Quando um sistema possui um número muito elevado de variáveis,


normalmente mais de 50, a programação começa a se tornar confusa e o
programador pode perder o controle sobre as variáveis criadas.

Muitas vezes os programadores iniciantes não se lembram de ter


inicializado uma determinada variável e a acabam sobrescrevendo.

Uma forma de organizar melhor a área de atuação de suas variáveis é


tratá-las como um vetor, conforme será demonstrado no decorrer deste artigo.
Definindo Arrays, Vetores E Matrizes:

Vetor é uma lista de valores organizados em forma de fila, sobre um índice.

Vetores também são normalmente conhecidos pelo seu nome em inglês


arrays.

Os vetores possuem apenas uma dimensão e por isso são chamados de


matrizes unidimensionais.

Matrizes, por outro lado, são vetores formados por vetores, ou seja, é
um vetor, onde cada elemento é um novo vetor.

As matrizes podem ser bidimensionais, quando formadas por um vetor


de vetores, tridimensionais, quando formadas por um vetor de vetor de vetores
e assim por diante até o que se chama genericamente de matriz N dimensional.

Uma vez que matrizes, arrays e vetores são basicamente a mesma


coisa, iremos tratá-los com as mesmas funções.

O PHP possui um conjunto de funções especialmente preparado para o


tratamento de
vetores.

Uma documentação mais apurada pode ser obtida no manual do PHP em:

http://www.php.net.

118
PROGRAMAÇÃO EM PHP
As saídas nas telas, mostradas neste artigo foram obtidas através das
funções show_vars() e print_a() da biblioteca debuglib, constituindo importante
recurso, tanto para programadores recém-iniciados, quanto para aqueles com
muitos anos de experiência.

A biblioteca não faz parte da distribuição padrão do PHP, no entanto,


pode ser distribuída e utilizada gratuitamente. O download pode ser realizado
em:

http://www.atomar.de.

Entendendo um Vetor:

Os vetores podem ser imaginados como mapas ordenados de variáveis,


onde cada parte do mapa é constituída de um valor e de um índice.

Um vetor pode ser criado implicitamente através dos colchetes ou


explicitamente, através da chamada da função array().

Tanto a criação de vetores de forma implícita, quanto criação por forma


explicita apresentam as mesmas características.

Para cada elemento de um vetor, deve-se especificar um par valor/índice.

Caso não se especifique um índice, o próprio PHP especificará um


índice para o valor passado.

Formas de criar um Vetor:

O script acima demonstra várias formas de se criar um vetor. Em alguns


casos, o nome dos índices também foi passado além do valor desejado.

É
119
PROGRAMAÇÃO EM PHP
É possível notar também que os índices não necessitam estar em
ordem, podendo ser passados em qualquer ordem ou até mesmo serem
índices textuais, além dos tradicionais índices numéricos.

O resultado do script pode ser visualizado na figura a seguir.

O $vetor01 foi criado através da chamada da função array(), o que resultou


em um vetor vazio.

Os colchetes vazios indicam ao PHP que se está incluindo um elemento


no vetor e que o próprio PHP deve especificar um índice.
Os índices numéricos automáticos do PHP iniciam em 0, portanto, "valor
01" recebe o índice 0.

Por este mesmo motivo, "valor 02" recebe o próximo índice automático,
1. No entanto, quando dentro dos colchetes especifica-se um índice, ele é
utilizado.

Este é o caso da linha $vetor01[5] = "valor 03", onde o índice 5 do vetor


assumiu o valor "valor 03".

Agora, o índice automático do PHP passa a ser o próximo elemento, ou


seja 6 e depois 7, como demonstrado nas linhas $vetor01[] = "valor 04" e
$vetor01[] = "valor 05".

Pode-se também, retroceder índices, como por exemplo, na linha


$vetor01[4] = "valor 06", mas a indexação automática do PHP não retrocede,
por isso, na linha $vetor01[] = "valor 07" o índice assumido é o 8.

O $vetor02 também foi criado através da função array(), no entanto, uma


lista de valores foi passada para a função, que ordenou os valores e os indexou
automaticamente, de 0 até 6.

Uma chamada implícita com os colchetes vazios resulta na criação do


índice 7 (sete) e logo depois armazenou-se uma sequência de caracteres no
índice 10 do vetor, também de forma implícita.

120
PROGRAMAÇÃO EM PHP
O $vetor03, no entanto, foi criado passando se os pares valor/índice
desejados. Isso foi feito através do operador seta dupla (=>) o qual se lê "índice
com valor".

Após uma nova chamada implícita que resulta na indexação automática


11, passa-se implicitamente o valor "mais uma string" que será armazenado no
índice "string".

Aqui se tem um exemplo de índice textual. Índices textuais agem da


mesma forma que índices numéricos, com a exceção que índices textuais não
podem ser incrementados.

A variável $vetor04, por outro lado, já foi criada de forma implícita,


mostrando que não é necessário o uso da função array() para a criação de um
vetor.

Desta forma, um vetor foi iniciado com o índice textual "apaga buffer".

A criação de uma matriz pode ser realizada da mesma forma, como por
exemplo, no script abaixo.

Após executado, o script apresenta como saída as seguintes matrizes.

121
PROGRAMAÇÃO EM PHP
No script acima, as mesmas técnicas demonstradas anteriormente foram
utilizadas para a criação de uma matriz bidimensional.

A matriz, na verdade, foi criada como sendo um vetor e cada elemento


deste vetor pode ser um novo vetor, de qualquer tamanho.

Portanto, o primeiro elemento do vetor é constituído de um novo vetor de


três elementos.

Pode se notar também que há uma diferença sutil entre o segundo e o


terceiro elemento deste vetor principal.

O terceiro elemento é apenas um elemento do vetor, enquanto o


segundo elemento é um novo vetor de um elemento.

Estas são as formas de se criar vetores e matrizes bidimensionais.

Para a criação de matrizes de ordem superior, basta inserir uma nova


dimensão neste conjunto de vetores, seja através de uma nova chamada à
função array() em cada novo elemento do vetor anterior ou através da
utilização de um novo conjunto de colchetes.

Tratando Vetores Como Filas e Pilhas:

Vetores podem ser utilizados para programar estruturas de dados, como


filas e pilhas.

Neste caso, podemos processar os dados que devem ser armazenados


em um vetor e os dados que são retirados do vetor segundo duas
metodologias: FIFO e LIFO.

A metodologia FIFO (do inglês First In, First Out) é também conhecida
como uma fila.

Isto significa dizer que os primeiros dados a serem armazenados no


nosso vetor serão os primeiros dados a serem retirados do vetor, como, por
exemplo, numa fila de banco, onde o primeiro cliente a entrar na fila deve ser o
primeiro cliente a ser atendido.

A LIFO (do inglês Last In First Out) é também conhecida como uma
pilha. Na pilha, assim como em uma pilha de papéis, o último dado a ser
colocado na fila deverá ser o primeiro dado a ser solicitado.

O script abaixo demonstra, de forma bem simples, as funções


necessárias para o tratamento de filas e pilhas em PHP.

122
PROGRAMAÇÃO EM PHP

É importante salientar que no script acima, onde está escrito "inserir a


função para mostrar vetores", deve se inserir a função print_r() ou uma das
funções da biblioteca debuglib.

Neste artigo, optou-se pelas funções da biblioteca debuglib, pois a


interface com o usuário destas funções é melhor que a da função nativa do
PHP print_r().

Pode-se afirmar que é muito complicado, até quase impossível, trabalhar


com vetores de dados de tamanho ou ordem elevadas apenas com a função
print_r() nativa do PHP.
Criou-se um vetor $carros01 com quatro elementos. A seguir, clonou-se
este vetor, criando-se um novo vetor $carros02.

Um elemento de cada vetor foi retirado, sendo que no primeiro vetor,


chamou-se a função array_shift() e no segundo vetor, chamou-se a função
array_pop(), armazenando-se este elemento nas referidas variáveis.
Logo após, armazenou-se o elemento "Clio" em cada vetor, sendo que o
primeiro vetor foi tratado com a função array_push() e o segundo vetor foi
tratado com a função array_unshift().

Desta forma, verifica-se que é possível construir uma pilha através da


função array_push(), que acrescenta um elemento no final de um vetor e da
função array_pop() que retira um elemento do final de um vetor.

Uma fila pode ser construída de forma similar, através da função


array_push() e da função array_shift(), que retira um elemento do início de um
vetor.

Utilizando-se a função array_unshift(), que acrescenta um elemento ao


início de um vetor, em conjunto com a função array_pop(), se obtém uma fila
reversa, enquanto que o uso da função array_unshift() com a função
array_shift(), possibilita a criação de uma pilha reversa.

123
PROGRAMAÇÃO EM PHP

O Ponteiro Interno de um Vetor:

Outra forma de se tratar vetores é percorrendo-os, como a uma


sequência de dados organizados.

Para isso, o PHP dispõe de um ponteiro interno e de funções, que


movem o ponteiro pelo vetor para alcançar um determinado dado. Considere o
script abaixo.

124
PROGRAMAÇÃO EM PHP

O script, depois de executado, produziu a saída na tela demonstrada na


figura anterior.

No exemplo, preferiu-se que as variáveis obtidas fossem colocadas em


vetores de forma a ficar mais fácil o entendimento do mesmo.

125
PROGRAMAÇÃO EM PHP

No início do script, o ponteiro interno está apontando para o primeiro


elemento do vetor.

A função current() retorna o valor apontado e a função key() retorna o


índice do valor apontando, portanto, ao chamar estas funções, será retornado o
valor e o índice do primeiro elemento.

As funções next() e prev(), incrementam e decrementam o ponteiro,


respectivamente, retornando o novo valor apontado.

É possível ainda avançar o ponteiro até o final do vetor através da


função end(), a qual também retorna o valor deste elemento, ou retroceder o
ponteiro até o início do vetor com a função reset(), que também retorna o valor
do elemento inicial.

Se as funções key(), current(), next() e prev() forem utilizadas de forma


indevida, por exemplo, para se acessar um valor ou um índice em uma posição
não pertencente ao vetor, um valor de erro será retornado.

FALSE é obtido quando se tenta acessar o valor anterior ao início de um


vetor ou o valor posterior ao final do mesmo, bem como um valor corrente de
um índice inexistente.

Quando se incrementa ou se decrementa um ponteiro além do limite do


vetor, a chamada de um índice inexistente retorna o valor NULL.

Em sua forma base, a função each() retorna o valor e o índice do


elemento apontado pelo ponteiro interno do vetor, em um novo vetor, indexado
numericamente e textualmente pelas palavras "value" e "key".

A estrutura foreach() é um laço de repetição exatamente como o laço


for(), que varre um vetor tratando cada elemento.

Há três peculiaridades no laço foreach() que devem ser consideradas:

1) O laço não age sobre o vetor, mas sobre uma cópia do vetor,
portanto, a cada iteração, o ponteiro interno do vetor original não é modificado;

2) antes do início do laço, o ponteiro interno do vetor original é


retrocedido até o primeiro elemento;
3) Ao final do laço, o ponteiro interno do vetor original é avançado até o
final do
vetor.

No início do script, o ponteiro é avançado duas posições, logo depois,


dentro do laço foreach(), ele é retrocedido ao início, conforme demonstrado na
variável $pos.

No entanto, ao final do laço, se current() for chamado a cada iteração, o


ponteiro interno do vetor original não é avançado até o final, diferente do que
ocorreu com a variável $pos2, quando o laço não executou a função current().
O uso do operador seta dupla permite que o laço retorne, além do valor
do elemento corrente, o índice.
126
PROGRAMAÇÃO EM PHP

127
PROGRAMAÇÃO EM PHP

EXERCÍCIOS

1- Primordialmente, os vetores são utilizados para que?

2- Que tipo de indivíduo pode acabar sobrescrevendo variáveis?

3- Os vetores podem ser imaginados como o que?

4- Existe diferença entre a criação de vetores de forma implícita ou explicita?

5- Os índices em geral, necessitam estar em ordem?

6- Vetores podem ser utilizados para implementar estruturas de dados? Como?

128
PROGRAMAÇÃO EM PHP

EXERCÍCIO DE FIXAÇÃO

1. Crie um arquivo no Notepad++ que exiba o seguinte array.


2. Salve o arquivo como testearray.php

129
PROGRAMAÇÃO EM PHP
AULA 8

Trabalhando com Arrays

Um array é uma variável, mas diferente das demais, ele armazena uma
coleção de valores e não somente um. E ainda por cima podem conter outras
variáveis e de tipos diferentes.
Detalhe importante: Quando em uma função precisarmos retornar mais
de um valor, array é a saída, basta retornar todos os valores em forma de
array.
Além disso, é semelhante ao que estudamos na matemática: linhas e
colunas. Matriz 3x4 (3 linhas e 4 colunas).
Um array no PHP é um mapa ordenado, que relaciona valores com
chaves (em linhas e colunas).
Especificando um array()

array([chave =>] valor, ...);


A chave pode ser uma string ou um inteiro.
O valor pode ser qualquer coisa.

Algumas das funções


Essas funções abaixo permitem a interação e manipulação de arrays de
várias formas.
Arrays são essenciais para armazenar, gerenciar, operar sobre um
conjunto de variáveis.

Arrays (matrizes) simples e multidimensionais são suportados e podem


ser criados pelo usuário ou por outras funções. Existem diversas funções
específicas para bancos de dados, que preenchem arrays com os dados
retornados em consultas, e vários outros tipos de funções também retornam
arrays.
array_fill -- Preenche um array com valores

array array_fill ( int start_index, int num, mixed value )

<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>

array_merge -- Funde dois ou mais arrays


array array_merge ( array array1, array array2 [, array ...] )

130
PROGRAMAÇÃO EM PHP

<?php
$array1 = array();
$array2 = array(1 => "data");

$result = array_merge($array1, $array2);


?>

Não esqueça que as chaves numéricas serão reordenadas!

Array
(
[0] => data
)

Se você quer preservar os arrays e apenas concatená-los, o operador +:

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
?>

As chaves numéricas serão preservadas e as associações originais


permanecem.
array_pad -- Expande um array para um certo comprimento utilizando um
determinado
valor.

array array_pad ( array input, int pad_size, mixed pad_value )

Exemplo 1. Exemplo de array_pad()

131
PROGRAMAÇÃO EM PHP

<?php
$input = array(12, 10, 9);

$result = array_pad($input, 5, 0);


// $result é array(12, 10, 9, 0, 0)

$result = array_pad($input, -7, -1);


// $result é array(-1, -1, -1, -1, 12, 10, 9)

$result = array_pad($input, 2, "noop");


// Não será expandido.
?>

array_pop -- Retira um elemento do final do array


mixed array_pop ( array array )

<?php
$cesta = array("laranja", "banana", "melancia",
"morango"); $fruta = array_pop($cesta);

print_r($cesta);
?>

array_push -- Adiciona um ou mais elementos no final de um array.


int array_push ( array array, mixed var [, mixed ...] )

<?php
$cesta = array("laranja", "morango");
array_push($cesta, "melancia", "batata");
print_r($cesta);
?>

array_reverse -- Retorna um array com os elementos na ordem inversa.


array array_reverse ( array array [, bool preserve_keys] )

132
PROGRAMAÇÃO EM PHP

<?php
$input = array("php", 4.0, array ("verde",
"vermelho")); $result = array_reverse($input);
$result_keyed = array_reverse($input, TRUE);
print_r($result_keyed);
?>

array_search -- Procura por um valor em um array e retorna sua chave


correspondente caso seja encontrado. Caso contrário retorna FALSE.

mixed array_search ( mixed procurar_este, array procurar_neste [, bool


strict] )

<?php
$a=array("a","b",0,"c","d");
echo "a: ".array_search("a",$a)."<br>";
echo "b: ".array_search("b",$a)."<br>";
echo "c: ".array_search("c",$a)."<br>";
echo "d: ".array_search("d",$a)."<brn>";
echo "0: ".array_search("0",$a)."<br>";
echo "x: ".array_search("x",$a)."<br>";
echo "1: ".array_search("1",$a);
?>

<?php
if (array_search($needle, $array)!== FALSE) {
//code goes here (

133
PROGRAMAÇÃO EM PHP

}
?>

<?php

function array_replace($search, $replace,


&$array) { foreach($array as $key =>
$value) {
if($value == $search) {
$array[$key] = $replace;
}
}
}
?>

<?
$Projects[0] = array(123, "Text 1");
$Projects[1] = array(456, "Text 2");
$Projects[2] = array(789, "Text 3");

$search_value = "ext 3";

foreach ($Projects as $key => $row){


foreach($row as $cell){
if (strpos($cell, $search_value) !== FALSE){
echo "<p>Project ".$key;
}
}
}
?>

array_shift -- Retira o primeiro elemento de um array.


mixed array_shift ( array array )

<?php
$cesta = array("laranja", "banana", "melancia", "morango");
$fruta = array_shift($cesta);
print_r($cesta);
?>

array_sum -- Calcula a soma dos elementos de um array.


mixed array_sum ( array arr )

134
PROGRAMAÇÃO EM PHP

<?php
$a = array(2, 4, 6, 8);
echo "soma(a) = ".array_sum($a)."<br>";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);


echo "soma(b) = ".array_sum($b)."<br>";
?>

array_unique -- Remove os valores duplicados de um array.

array array_unique ( array array )

<?php
$input = array("a" => "verde", "vermelho", "b" => "verde", "azul",
"vermelho");
$result = array_unique($input);
print_r($result);
?>

Exemplo 2. array_unique() e tipos

<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>
<pre>

<h2>array_values -- Retorna todos os valores de um array</h2>

array array_values ( array input )

//Retorna os valores, as chaves não


<pre>
<?php
$array = array("tamanho" => "G", "cor" =>
"dourado"); print_r(array_values ($array)); ?>

135
PROGRAMAÇÃO EM PHP

array -- Cria um array.


array array ( [mixed ...] )
Exemplo 1. Exemplo de array()

<?php
$frutas = array (
"frutas" => array("a"=>"laranja", "b"=>"banana",
"c"=>"maçã"), "numeros" => array(1, 2, 3, 4, 5, 6),

"buracos" => array("primeiro", 5 => "segundo", "terceiro")


)
?>

Exemplo 2. Indexação automática com array()

<?php
$array = array(1, 1, 1, 1, 1, 8 => 1, 4 => 1, 19, 3 => 13);
print_r($array);
?>

arsort -- Ordena um array em ordem decrescente dos valores mantendo


a associação entre índices e valores.
void arsort ( array array [, int sort_flags] )

<?php
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" =>
"melancia"); arsort($frutas);
foreach ($frutas as $chave => $valor) {
echo "$chave = $valor\n";
}
?>

asort -- Ordena um array em ordem crescente dos valores mantendo a


associação entre índices e valores.
void asort ( array array [, int sort_flags] )

136
PROGRAMAÇÃO EM PHP

<?php
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" =>
"melancia"); asort($frutas);
foreach ($frutas as $chave => $valor) {
echo "$chave = $valor\n";
}
?>

count -- Conta o número de elementos de uma variável.


int count ( mixed var [, int mode] )

<?php
$a[0] = 1;

137
PROGRAMAÇÃO EM PHP

$a[1] = 3;
$a[2] = 5;
$a[3] = 6;
$result = count($a);
// $result == 4
print $result."<br>";

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count($b);
// $result ==
3; print
$result; ?>

Exemplo 2. Uso recursivo da função count() (PHP >= 4.2.0).

<?php
$food = array( 'fruits' => array('orange',
'banana', 'apple'), 'veggie' => array('carrot',
'collard','pea')); // recursive count
echo count($food,COUNT_RECURSIVE); //
mostra 8 // normal count
// mostra2
echo count($food); 2
?
>

<?php
$food = array( 'fruits' => array('orange',
'banana', 'apple'), 'veggie' => array('carrot',
'collard','pea')); // recursive count
echo count($food,COUNT_RECURSIVE)."<br>"; //
mostra 8 // normal count
// mostra2
echo count($food); 2
?
>

current -- Retorna o elemento corrente em um array.


mixed current ( array array )

138
PROGRAMAÇÃO EM PHP

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
echo "Atual $mode<br>";
$mode = next($transport); // $mode = 'bike';
echo "Atual $mode<br>";
$mode = current($transport); // $mode = 'bike';

echo "Atual
$mode<br>";
$mode = // $mode =
prev($transport); 'foot';
echo "Atual
$mode<br>";
$mode = // $mode =
end($transport); 'plane';
echo "Atual
$mode<br>";
$mode = current($transport); // $mode = 'plane';
echo "Atual $mode<br>";
?>

139
PROGRAMAÇÃO EM PHP

each -- Retorna o par chave/valor corrente de um array e avança o seu


cursor.
array each ( array array )

<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>

<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>

Percorrendo um array com each()

<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' =>
'cranberry'); reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
/* Saída:

a => apple
b => banana
c => cranberry

*/
?>

end -- Faz o ponteiro interno de um array apontar para o seu último


elemento.
mixed end ( array array )

140
PROGRAMAÇÃO EM PHP

<?php
$frutas = array('melancia', 'banana', 'morango');
print end($frutas); // morango
?>

key -- Retorna uma chave da posição atual de um array associativo.


mixed key ( array array )

<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');

// este ciclo exibirá todas as chaves do array associativo


// auxiliado pela função next()
while ($fruit_name = current($array)) {
echo key($array).'<br>';
next($array);
}
?>

<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');

// este ciclo exibirá toda a chave do array associativo


// onde o valor é igual a "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array).'<br>';
}
next($array);
}
?>

next -- Avança o ponteiro interno de um array.

mixed next ( array array )


141
PROGRAMAÇÃO EM PHP

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
print"$mode<br
>";
$mode = // $mode =
next($transport); 'bike';
print"$mode<br
>";
$mode = // $mode =
next($transport); 'car';
print"$mode<br
>";
$mode = // $mode =
prev($transport); 'bike';
print"$mode<br
>";
$mode = // $mode =
end($transport); 'plane';
print"$mode<br
>";
?
>

prev -- Retrocede o ponteiro interno de um array.

mixed prev ( array array )

142
PROGRAMAÇÃO EM PHP

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
print"$mode<br
>";
$mode = // $mode =
next($transport); 'bike';
print"$mode<br
>";
$mode = // $mode =
next($transport); 'car';
print"$mode<br
>";
$mode = // $mode =
prev($transport); 'bike';
print"$mode<br
>";
$mode = // $mode =
end($transport); 'plane';
print"$mode<br
>";
?
>
<pre
>

<h2>reset -- Faz o ponteiro interno de um array apontar para o seu


primeiro elemento</h2>

mixed reset ( array array )


<pre>
<?php
$array = array('primero passo', 'segundo passo', 'terceiro passo', 'quarto
passo');

// por definição, o ponteiro está sobre o primeiro


elemento echo current($array)."<br>\n"; //
"Primeiro passo"

// pula dois passos


next($array);
next($array);

143
PROGRAMAÇÃO EM PHP

echo current($array)."<br>\n"; // "passo três"

// reinicia o ponteiro, começa novamente o


primeiro passo reset($array);
echo "Depois de resetado...: " . current($array)."<br>\n"; // "primeiro
passo"
?>

sizeof -- Apelido de count()


sort -- Ordena um array pelo seu valor.
void sort ( array array [, int sort_flags] )

<?php

$frutas = array("limao", "laranja", "banana",


"melancia"); sort($frutas);
foreach ($frutas as $chave => $valor) {
echo "frutas[".$chave."] = ".$valor."<br>";
}
?>

Os seguintes também são funcionalmente idênticos:

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each ($arr)) {
echo "Chave: $key; Valor: $value<br />\n";
}

foreach ($arr as $key => $value) {


echo "Chave: $key; Valor: $value<br />\n";
}
?>

Mais alguns exemplos para demonstrar os usos:

144
PROGRAMAÇÃO EM PHP

<?php
/* exemplo foreach 1: somente valores */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {


echo "Valor atual de \$a: $v.\n";
}

/* exemplo foreach 2: valores (com as chaves impressas para ilustração) */

$a = array(1, 2, 3, 17);

$i = 0; /* para exemplo somente */

foreach ($a as $v) {


echo "\$a[$i] => $v.\n";
$i++;
}

/* exemplo foreach 3: chaves e valores */

$a = array (
"um" => 1,
"dois" => 2,
"três" => 3,
"dezessete" => 17
);

foreach ($a as $k => $v) {


echo "\$a[$k] => $v.\n";
}

/* exemplo foreach 4: arrays multidimensionais */

$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {


foreach ($v1 as $v2) {
echo "$v2\n";
}
}
145
PROGRAMAÇÃO EM PHP

/* exemplo foreach 5: arrays dinâmicos */

foreach (array(1, 2, 3, 4, 5) as $v) {


echo "$v\n";
}
?>

Exemplo de array multidimensional.

$produto[1][codigo] = "1";
$produto[1][nome] = "João Pereira Brito";
$produto[1][email] = "joao@joao.org";
$produto[1][rua] = "Vasco da Gama";
$produto[1][numero] = "1345";

$produto[2][codigo] = "2";
$produto[2][nome] = "Antônio queiroz";

Exemplo de Array

$i=0;
while($i < $numregs){
$codigo=pg_result($consulta,$i,codigo);
$nome=pg_result($consulta,$i,nome);
$venc=pg_result($consulta,$i,vencimento);
$apartamento=pg_result($consulta,$i,apartamento);
$pessoas=pg_result($consulta,$i,pessoas);
$cota_agua=pg_result($consulta,$i,cota_agua);
$cota_condominio=pg_result($consulta,$i,cota_co
ndominio);
$cota_reserva=pg_result($consulta,$i,cota_reserv
a);

$total = $cota_agua + $cota_condominio +


$cota_reserva; $total = number_format($total,2,
',','.');
...
$i++;
}

146
PROGRAMAÇÃO EM PHP

Também podemos ter um array formado por outros arrays (neste caso,
cada sub array é uma linha do principal).

$arrayvarios = array(
array(1, 3, 5, 7),
array(2, 4, 6, 8),
array(1, 1, 1, 1)
);

Neste caso temos um array 2x4 (2 linhas por 4 colunas, que iniciam
sempre com índice
zero).

Então se queremos retornar o valor 8, que está na linha 2 e coluna 4,


devemos retornar o índice 1,3 (linha2=índice 1, coluna4=índice3).

print $arrayvarios[1][3];

Atribuindo valores às chaves de arrays.

Também podemos fazer diretamente assim:

print $alunos["0732355"] = "João Brito";

Lembrando que, a chave, é exclusiva. Podemos ter:

147
PROGRAMAÇÃO EM PHP

$alunos["0732355"] = "João Brito";


$alunos["0932355"] = "João Brito";

Mas não podemos ter:


$alunos["0732355"] = "João Brito";
$alunos["0732355"] = "Ribamar FS";

Trabalhando com arrays.

Para facilitar o entendimento, vamos definir array como um conjunto de


valores, que podem ser identificados em grupo ou então separadamente. Estes
conjuntos podem ser muito úteis enquanto programamos, pois em alguns
casos podem substituir uma tabela em banco de dados ou então utilizando
métodos mais avançados podemos carregá-los dinamicamente e utiliza-los
quase como um banco de dados em memória.
A linguagem PHP oferece uma incrível gama de recursos para se
trabalhar com arrays. Com destaque para as funções auxiliares que permitem
fazer desde uma simples contagem de elementos até a conversão automática
de um array ou string.

148
PROGRAMAÇÃO EM PHP

EXERCÍCIOS

1- O que é um array?

2- O que é um array em PHP?

3- Qual o objetivo da função array_fill?

4- Qual o objetivo da função array_merge?

5- Qual o objetivo da função array_push?

149
PROGRAMAÇÃO EM PHP

EXERCÍCIO DE FIXAÇÃO

1. Em que situação o array funciona como uma saída?

2. A metodologia FIFO também é conhecida como o que?

3. A metodologia LIFO também é conhecida como o que?

4. Como podemos construir uma fila?

5. Qual o objetivo da função array pop?

150
PROGRAMAÇÃO EM PHP
AULA 09

Nas ultimas aulas nós aprendemos os fundamentos da linguagem PHP e


como utilizá-los.

Agora iremos aprender a desenvolver páginas WEB e também veremos


como as funções em PHP se comportam neste tipo de situação.

Existem apenas 3 formas de recebermos dados de nosso usuário pela


WEB, estes seriam:

1ª URL ou Links
2ª Forms
3ª Cookies

A princípio, existem apenas estas três formas de interação com o


usuário, podemos conhecê-las também por:

1ª URL ou Links - GET


2ª Forms - POST
3ª Cookies – COOKIE

Podemos efetuar uma operação GET quando nos referirmos a uma URL
ou Link.

Forms irá postar os dados no servidor.

E cookies seria quando puxarmos um cookie do servidor.

Cada linguagem web possui uma maneira diferente de interagir com estas
3 técnicas.

Veremos então, alguns exemplos de manipulação de links.

Manipulação de Links:

Temos previamente abertos dois documento em PHP chamados


primeirapagina.php e segundapagina.php, primeiramente estaremos
trabalhando com estes dois documentos.

Ambos estão
armazenados em nossa
pasta testephp dentro de
nosso servidor.

Em ambos nós
possuímos uma
estrutura de HTML
básica em cada uma das
páginas, como você

151
PROGRAMAÇÃO EM PHP
pode visualizar no
documento
primeirapagina.html,
Links em PHP serão
simplesmente links em
HTML, se quisermos
chegar a segunda
página,

devemos primeiramente digitar:

<a href=segundapagina.php> Segunda Página </a>


Da mesma forma que o exemplo abaixo

Após salvar o documento, abra o seu navegador de internet:

152
PROGRAMAÇÃO EM PHP
.
Clique na barra de navegação:

Digite http://localhost/phpteste/primeirapagina.php e pressione Enter.

Como você pode notar, foi criado um link, você pode ver que é um link
em HTML normal referente à segunda página.

Clique sem Segunda Página:

153
PROGRAMAÇÃO EM PHP

Você pode verificar que o link nos direcionou para a segunda página.
Simples não acha?

Mas isso não é realmente PHP, isto é apenas HTML, de fato nem
criamos ainda uma tag em PHP dentro da estrutura de nossas páginas.

Volte agora a estrutura da primeirapagina.php.

Em HTML você pode enviar valores juntamente com o link que você
criou. Para fazer isso, note no exemplo abaixo o valor que especificamos foi de
id=1.

154
PROGRAMAÇÃO EM PHP

Clique no local indicado para Salvar:

Após salva-lo, você ainda pode perceber que tudo ainda se refere a
HTML, mas e se na segunda página nós desejarmos pegar este valor de id e
trabalharmos com ele?

Teremos de ter um pouco de PHP para que possamos pegar o valor da


URL.
155
PROGRAMAÇÃO EM PHP

Entre na estrutura de nossa segunda pagina.php:

Dentro da tag <body>, vamos iniciar nosso código em PHP. Faça como o
exemplo
abaixo.

Se tentássemos rodar agora nossa segunda página, teríamos o


resultado de que o valor ainda não foi definido. Portanto, o que precisamos é
uma forma de recebermos o valor da URL.
O PHP em si faz algo de grande ajuda para nós, tudo que foi colocado
depois do ponto de interrogação em nossa URL, pode ser considerado como
um array de acesso e este array é chamado Super Global.
Para termos acesso a ele, digite: print_r($_GET); da forma demonstrada abaixo.

156
PROGRAMAÇÃO EM PHP

Vamos agora comentar a linha abaixo, observe o exemplo a seguir.

Após salva-lo, podemos visualizar o resultado do código em navegador.

Você pode visualizar que a página em si não nos deu dado nenhum,
pois não determinamos nenhum dado específico para ela.
Para determinarmos isso, clique no final do endereço de sua segunda
página.

157
PROGRAMAÇÃO EM PHP

Agora digite ?id=1 e pressione Enter, isso nos dará o resultado


exemplificado abaixo.

Como você pode ver, ele nos retornou que o id é igual a 1.


Você pode utilizar este array da forma que quiser, por exemplo, no lugar
de id=1 digite nome=ivo e pressione Enter, você poderá visualizar o resultado
abaixo.

Você pode ver que nos retornou o nome sendo igual a ivo.

158
PROGRAMAÇÃO EM PHP

Agora vamos voltar a determinar o array como id=1, para isso, clique em
Voltar.

Agora vamos setar uma nova variável na estrutura de nossa segunda


página para que ela possa ser chamada por nosso echo que está comentado.
Vamos também remover o comentário, verifique na imagem abaixo.

Agora para termos uma noção melhor do que fizemos, vamos ressaltar
esse echo com uma fonte diferente.

Vamos colocá-lo dentro das tags <strong> para ressaltá-lo.

Verifique a imagem abaixo.

Após salva-lo, vamos visualizar o resultado no navegador, confira na


imagem abaixo.

159
PROGRAMAÇÃO EM PHP

Você pode agora verificar que nosso id está em negrito.

Vamos agora modificar o valos desse id. Faça como na imagem a


seguir, lembrando-se de atualizar a página.

Você pode verificar que o resultado foi modificado.

160
PROGRAMAÇÃO EM PHP

Agora volte a estrutura de nossa primeirapagina.php, vamos determinar


que o id seja diferente. Verifique na imagem abaixo o id=12.

Após salvar nosso progresso, vamos abrir a primeira página novamente,


como mostrado abaixo.

Pelo que você pode analisar anteriormente, este link irá nos direcionar
para a segunda página e irá determinar seu id como 12.

161
PROGRAMAÇÃO EM PHP

Clique no link e você terá o seguinte resultado:

Como pode ver, o resultado foi exatamente como esperado.


Nós já deixamos nosso site muito dinâmico não acha? Pois podemos
enviar valores entre as páginas por utilizarmos estes links.

Até agora, tivemos uma explicação referente à primeira forma de como


podemos receber informação de nosso usuário, como trabalhar com URL‟s e
links ou requisições GET.

Agora vamos dar uma olhada em Forms que normalmente serão


relacionados a requisições POST, pois os dados serão postados de um
formulário para o servidor.

Vamos ver então como formulários funcionam em PHP.

Criamos previamente para você dois novos arquivos chamados form.php


e processo.php como você pode ver na imagem abaixo.

162
PROGRAMAÇÃO EM PHP

Você pode ver que dentro de form.php possuímos uma estrutura básica em
HTML.

Agora vamos inserir para você certo código relacionado à criação de


formulários e vamos explica-lo passo a passo.
Como você pode ver temos um formulário que irá direcionar o resultado
de nossos dados para uma página chamada “processo.php” com o método
“post”.

163
PROGRAMAÇÃO EM PHP

Inserimos a seguir um valor chamado “Usuário” do tipo “text” que irá


requisitar a nosso usuário que se identifique.

Logo após isso inserimos um valor chamado “Senha:” do tipo “password”


que irá requisitar a nosso usuário que insira uma palavra chave.

Já que determinamos que seu tipo seja “password”, os caracteres não


serão vistos.
E finalmente temos um valor chamado “Enviar” que irá nos retornar um
botão de envio dos dados para a página “processo.php”.
164
PROGRAMAÇÃO EM PHP

Uma vez que desenvolvermos um site onde será utilizado login e senha
para limitar o acesso de determinados usuários, iremos utilizar formulários
similares a este.

Vamos visualizar o resultado de nosso código em nosso navegador.

Tendo em mente que você já está familiarizado com o procedimento,


deixe que nós acessemos o arquivo para você.
Agora podemos digitar nestes campos valores, tais valores serão
processados e enviados para o arquivo que criamos previamente chamado
processo.php.

165
PROGRAMAÇÃO EM PHP
O que teremos de fazer agora é preparar a página processo.php para
receber os dados, não acha?

Abra o Notepad++ clicando no local indicado abaixo.

Agora clique em processo.php

Como você pode ver, temos uma estrutura em HTML básico, o que
iremos fazer é inserir um pouco de PHP dentro da tag <body>.
Clique no local indicado.

166
PROGRAMAÇÃO EM PHP

Iremos inserir previamente para você as tags iniciais do PHP para


acelerarmos o processo.

Agora digite $username = $_POST['username']; como na imagem abaixo


e logo em seguida, pressione Enter.

167
PROGRAMAÇÃO EM PHP

Agora digite $password = $_POST['password']; como na imagem abaixo


e logo em seguida pressione Enter.

Agora digite echo "{$username}: {$password}"; como na imagem abaixo.

O que fizemos aqui, foi simplesmente determinar que iremos puxar da


variável global $_POST, os dados de username e password e logo em seguida
exibir os mesmo.
168
PROGRAMAÇÃO EM PHP

Clique em Salvar.

Verificando o resultado do formulário:

Clique no navegador indicado na imagem abaixo.

Agora clique em usuário.

Vamos determinar um nome para nosso usuário, digite ivo como na


imagem abaixo.
169
PROGRAMAÇÃO EM PHP

Agora clique no campo senha.

Vamos determinar agora uma senha para ele, digite 123 como na imagem abaixo.

170
PROGRAMAÇÃO EM PHP

Pronto, já preenchemos os campos necessários para o envio de dados


por meio nosso formulário, o que nos resta a fazer é clicar em enviar.

Clique no botão Enviar destacado na imagem abaixo.

Como você pode notar ele retornou nosso usuário e senha.

171
PROGRAMAÇÃO EM PHP

Você pode criar validações via forms onde você poderá validar um login
para um site, enviar um comentário de um determinado site via e-mail, entre
outras diversas funcionalidades.

Como você pode notar, existem diversas formas de deixarmos nossas


páginas mais interativas e até mesmo de deixamos elas mais seguras com o
auxílio da validação via o método post.

Chegamos ao final da nona aula. Não deixe de executar os exercícios da apostila.

172
PROGRAMAÇÃO EM PHP

EXERCÍCIOS

1- URL‟s também são conhecidas como o que?

2- Forms também são conhecidos como o que?

3- De que três formas podemos interagir com o usuário?

4- Podemos interligar páginas utilizando PHP?


_

5- De um exemplo de variável global utilizada em aula.

6- Forms normalmente serão relacionados a que tipo de requisições?

7- Qual a função da linha de código <form action= “processo.php”


method=”post”>?

173
PROGRAMAÇÃO EM PHP

8- Qual a função da linha de código <input type=”text” name=“username” value=””


/>?

9- Qual a função da linha de código <input type=”password” name=”password”


value=”” />?

10- Qual a função da linha de código <input type=”submit” name=”submit”


value=”Enviar” />?

11- Podemos criar validações com formulários?

174
PROGRAMAÇÃO EM PHP

EXERCÍCIO DE FIXAÇÃO

1. Crie dois arquivos, um chamado form.php e outro chamado


processo.php.

2. Dentro do form.php, escreva um código que gere um


formulário similar ao demonstrado abaixo.

175
PROGRAMAÇÃO EM PHP

3. Dentro de processo.php, escreva um código que exiba os dados


preenchidos em form.php.

176
PROGRAMAÇÃO EM PHP
Aula 10

Nas ultimas aulas vimos como podemos utilizar URL‟s, Links e Forms
com requisições GET‟s e POST‟s, aprendemos também a trabalhar com estes
valores em PHP.

Existe mais uma forma de interagirmos com nosso usuário e com o


navegador do usuário, esta forma seria por meio de:

Cookies:

Nosso Servidor Web pode fazer uma requisição ao Navegador Web de


nosso usuário para enviar de volta um Cookie.

Então, como você pode estar imaginando, Cookies serão acessados da


mesma forma que requisições GET e POST.

Lembre-se que com GET nos colocamos nas aulas anteriores um


$_GET e quando formos lidar com POST colocamos $_POST, nós
acessaremos variáveis Cookies da mesma forma.

Porém, diferente de URL‟s, Links e Forms onde nós sabíamos que


poderíamos usar HTML para setar os valores, com cookies nós precisaremos
aprender algo a mais, como setar um cookie.

A setagem de cookies será feita da seguinte forma:

Setcookie( $name, $value, $expire);

Está será nossa função cookie, primeiramente teremos as variáveis


referentes ao nome do cookie, o valor do cookie e em quanto tempo o cookie
irá expirar.

Estas são as partes essenciais dos cookies, tais partes que são
importantíssimas de você ter em mente.

Agora vamos utilizar uma


página em PHP onde poderemos
criar nossa função cookie.

Você pode ver que


previamente criamos dois arquivos
em PHP para você, cookies.php e
cookies_read.php, ambos estão
salvos em nossa pasta testephp.
Primeiramente estaremos
trabalhando com cookies.php como
você pode ver.

Inicialmente, vamos digitar


uma função cookie e logo em
seguida analisa-la.

177
PROGRAMAÇÃO EM PHP
Como você pode notar, nós
já aceleramos o processo e
inserimos as tags iniciais do PHP
para você.

Digite: setcookie(„teste‟, 45, time()+(60*60*24*7)); como na imagem


abaixo.

Como você pode notar, nós setamos o nome do cookie como “teste”.

178
PROGRAMAÇÃO EM PHP

Logo em seguida setamos seu valor para 45.

E finalmente colocamos uma data de expiração de uma semana, deve


estar um pouco complicado de entender a expiração, não é? Vamos analisa-la
com calma.

179
PROGRAMAÇÃO EM PHP

Quando colocamos “time()” em nossa função, determinamos que


daquele exato momento em diante, o tempo de expiração do cookie seria
contado.

Logo em seguida colocamos uma fórmula matemática básica. Estamos


multiplicando 60 segundos, por 60 minutos, por 24 horas, por 7 dias. Você já
tem ideia do resultado que teremos? Exatamente, teremos um tempo de
expiração de uma semana.

Para um momento agora e analise novamente toda a função para ter


certeza de que compreendeu seu funcionamento.

Caso tentássemos exibir este nosso cookie em um navegador, não


receberíamos nada de volta, pois o que fizemos aqui foi apenas setar um
cookie.

Para termos uma visualização melhor


dos cookies, na aula de hoje utilizaremos o
Mozilla Firefox.

Podemos ver se nosso cookie foi


setado ou não, para isso, deixe que nós
exibamos o arquivo cookies.php no Firefox
para você.

Nosso Firefox já está com a Barra de


Menus ativada, você viu como ativá-la no
decorrer da aula.

Como você pode perceber, não tivemos retorno nenhum, porém,


nosso cookie foi
setado.

180
PROGRAMAÇÃO EM PHP

Para visualiza-lo, clique em Firefox.

Posicione o mouse sobre Opções.

181
PROGRAMAÇÃO EM PHP

Agora clique em Barra de menus.

Note que o visual do Firefox foi alterado.

182
PROGRAMAÇÃO EM PHP

Clique em Ferramentas

183

Clique no local indicado:


PROGRAMAÇÃO EM PHP

Clique em Segurança.

Clique em Exibir cookies.

Como você pode ver, nosso Cookie está listado, assim como seus dados
logo abaixo.
184
PROGRAMAÇÃO EM PHP

Você pode ver seu Nome.

Também pode visualizar seu valor.

O endereço referente ao servidor, assim como seu caminho estão também


visíveis.

E por fim, a validade de seu cookie.

Agora vamos ver como podemos visualizar o valor deste cookie.

Feche todas as janelas relacionadas à exibição de cookies até que você


tenha somente a aba principal do Firefox sendo exibida assim como na imagem
abaixo.

185
PROGRAMAÇÃO EM PHP

Agora clique em Notepad++

Clique agora em cookies_read.php

Como você pode ver, temos previamente uma estrutura simples de


HTML desenvolvida.

186
PROGRAMAÇÃO EM PHP

Clique aqui na parte interna da tag <body>

Deixe que nós coloquemos as tags iniciais do PHP para acelerar o


processo.

Agora digite $var1 = $_COOKIE[„test‟]; como na imagem abaixo e logo


em seguida pressione Enter.

187
PROGRAMAÇÃO EM PHP

Como você pode perceber, acabamos de setar a variável global


$_COOKIE.
Digite echo $var1; para que nosso código fique similar ao código abaixo.

Agora podemos verificar qual será o resultado desta página no


navegador, vamos abrir previamente o arquivo cookies_read.php para você.

188
PROGRAMAÇÃO EM PHP

Como pode perceber, ele nos retornou o valor do cookie “teste” que seria
igual a 45.

Outra ação que podemos tomar ao trabalharmos com cookies, é a de


eliminarmos o mesmo.

Podemos fazer isso por setar o seu valor igual a nada ou setar sua data
de expiração para um momento do passado.

Vamos tentar fazer isso agora. Clique em Notepad++.

Dentro de nossa estrutura cookies_read.php, iremos adicionar um pouco


de código e logo em seguida explica-lo passo a passo.

189
PROGRAMAÇÃO EM PHP
Como pode ver, setamos um cookie com valor igual a 0, ou nenhum, e
colocamos sua data de expiração para uma semana atrás, como você pode
perceber pelo sinal negativo.

Isto fará com que nosso cookie seja setado como algo sem significado
assim como dirá que o mesmo já expirou.

Vamos agora carregar está página novamente no navegador, mas deixe


que nós façamos isso para você.

Clique em Atualizar.

Ele nos retornou o valor de 45 porque primeiramente ele leu o cookie e


nos retornou o echo de seu valor, apenas após isto ele setou o valor como 0 e
como expirado.

Então vamos atualizar nossa página novamente, clique em Atualizar.

190
PROGRAMAÇÃO EM PHP

Agora ele nos retornou uma mensagem de erro, como que dizendo
“Não, eu não encontrei um cookie com este nome.” Porque nós o expiramos.

O usuário tem controle sobre os cookies, ele pode facilmente limpar a


lista de cookies deletando os mesmos. O usuário também possui autonomia
para mudar os valores do cookie.

Por isso é interessante remos cuidado ao chamarmos dados de cookies


de volta, pois é há o risco de buscarmos dados inválidos.

Como você pode ver em nosso navegador, recebemos automaticamente


um erro quando o cookie foi modificado, e isto com certeza são algo que
queremos evitar ao trabalharmos com cookies.

Devido a isso, seria uma ótima prática se nos acostumarmos a


determinar em nossa estrutura o seguinte.

Primeiramente clique em Notepad++.

191
PROGRAMAÇÃO EM PHP

Agora vamos modificar o nosso código um pouco, preste atenção em como


ele ficará a
seguir.

O que determinamos aqui, primeiramente foi um valor padrão para a


$var1, que seria igual a 0 caso nenhum valor tenha sido setado.

Em seguida, determinamos que se o cookie estiver setado, e apenas se


estiver setado, utilizaremos a variável ($var1).

192
PROGRAMAÇÃO EM PHP

Agora vamos fazer um teste com esse cookie, clique no Firefox.

No Firefox, clique em Atualizar.

Como você pode ver ele nos deu o retorno de 0.

193
PROGRAMAÇÃO EM PHP

Caso fossemos até nossa página cookies.php e voltássemos para nossa


cookies_read.php, ele nos daria o valor de 45.

Vamos conferir na prática, mas deixe que nós executemos o arquivo


cookies.php para você.

Agora clique em voltar para retornar a página cookies_read.php, e como


já era de se imaginar, recebemos o valor de 45 e imediatamente ele deletará o
valor do cookie de acordo com o cookies_read.php.

194
PROGRAMAÇÃO EM PHP
O que podemos aprender com cookies é que eles são de vital
importância para colocar dados no browser de nosso usuário para que
possamos ter acesso aos mesmos em outro momento, podemos retorna-los
daqui a um mês, um ano, de acordo com nossa necessidade, se o cookie
estiver lá, poderemos puxar de volta esta informação e saber algo referente a
este usuário.

Mas também não podemos confiar que os cookies estarão lá, portanto é
interessante que chequemos se realmente o cookie está lá e só depois utiliza-
lo.

Agora que entendemos como cookies funcionam, entendemos seus pros


e contras, vimos que existem formas de perdermos e manipularmos dados em
cookies vamos dar uma olhada em algo um pouco mais robusto.

Principalmente se estivermos trabalhando com aplicativos web, cookies


talvez não seja a melhor forma de utilização para nós. Na verdade, você irá
achar interessante utilizar cookies juntamente com sessions.

Session
session é um arquivo armazenado no servidor web. Dentro deste
arquivo, você pode armazenar qualquer informação que você desejar.

Você pode colocar muito mais informação lá do que você pode colocar
em um cookie, e esta é uma das vantagens da utilização de sessions.

A forma de descobrirmos qual arquivo pertence a qual usuário, é por


meio dos cookies. Para isso, setamos um session cookie especial no seu
navegador, então procuramos naquele cookie o lugar onde o arquivo se
encontra dentro de nosso servidor.

Logo em seguida podemos ver dentro daquele arquivo a informação


armazenada na session.

A informação não estará disponível para visualização ou para edição,


tudo que pode ser feito, é a modificação do número de ID referente ao arquivo.

O número ID será muito longo e complicado, para termos certeza de que


não haverá problemas entre outras sessions referentes a outros usuários.

Então, para utilizarmos uma session, vamos ter de primeiramente, criar


este arquivo e setar o cookie na máquina do usuário ou, se já tivermos feito
isso, vamos precisar encontrar aquele cookie e encontrar o arquivo
correspondente na máquina.

Precisaremos fazer isso com algo chamado session_start, essa é uma


função muito simples que iremos lhe mostrar agora, mas antes disso
precisamos mencionar algo muito importante referente à session_start.

A session_start deve acontecer no início de todo o seu código, isso é


muito importante que você sempre tenha em mente, antes de qualquer coisa,
ao se trabalhar com session_start, ela deve ser a parte inicial de seu código.

195
PROGRAMAÇÃO EM PHP
Antes que você acrescente qualquer HTML ou qualquer espaço em
branco, você precisará colocar sua session_start.

Como você pode perceber, criamos previamente para você um arquivo


chamado sessions.php.

Dentro dele, criamos previamente para você uma estrutura em HTML


básico.

Como foi comentado anteriormente, você deve determinar que o arquivo


será uma session logo no início do código.

Iremos digitar as tags iniciais do PHP e a função session_start(); para


você logo no início do código, confira na imagem abaixo.

196
PROGRAMAÇÃO EM PHP

Esse único comando irá dizer: “OK, PHP, vá até o navegador, pegue o
ID desse session cookie, volte, encontre o arquivo e o abra para que possamos
utiliza-lo. Caso você volte e não encontre arquivo algum, crie um novo.”

Então, a questão chave aqui seria toda a vez que utilizarmos


session_start, ela deverá ser a primeira coisa a ser adicionada a nosso código.

Vamos agora tentar visualizar o resultado de nossa session em nosso


navegador, mas antes disso, salve seu arquivo.

Isso na verdade não nos retornará nada, mas poderemos ter uma noção
do que aconteceu.

Clique no
ícone do Firefox.

Para que
possamos acelerar
o processo, deixe
que nós
executemos o
arquivo
sessions.php no
navegador para
você.

Como pode
ver, não obtivemos
retorno algum,
porém, poderemos
notar que a
session foi criada.
197
PROGRAMAÇÃO EM PHP

Clique em Ferramentas.

Agora clique em Propriedades da página.

198
PROGRAMAÇÃO EM PHP

Selecione a opção Segurança.

Clique em Exibir cookies.

199
PROGRAMAÇÃO EM PHP

Agora você pode visualizar que criamos um novo cookie com nossa
session, e este cookie possui um conteúdo muito extenso, esse seria o ID que
o cookie irá utilizar para encontrar o arquivo dentro de nosso servidor.

Por questões de segurança, esta é uma boa técnica a ser utilizada, pois
seria difícil encontrar um arquivo ou até mesmo de descobrir a que arquivo
esse ID está se referindo.

200
PROGRAMAÇÃO EM PHP

Sabemos que até o momento, o conteúdo de nosso arquivo


sessions.php está vazio, portanto, vamos acrescentar algo dentro do mesmo.
Feche todas as janelas referentes exibição de cookies até que você
tenha apenas a aba principal do Firefox aberta.

Clique agora em Notepad++.

Nós podemos acrescentar coisas a este arquivo e da mesma forma


puxarmos as mesmas para fora por nos referirmos as sessions da mesma
forma que nos referimos as Super Globals GET, POST e COOKIE.

Para isso, vamos digitar as tags iniciais do PHP.

Agora digite $_SESSION[“name”] = “ivo”; assim como na imagem abaixo.

Isso será colocado dentro do arquivo session.

201
PROGRAMAÇÃO EM PHP
Vamos criar agora um novo bloco de PHP logo abaixo, mas deixe que
nós criemos as tags iniciais para você.

Essas tags farão a leitura de nosso nome.

Digite $name = $_SESSION[“name”]; assim como na imagem abaixo e


pressione Enter.

Agora digite echo $name; assim como na imagem abaixo.

Salve seu arquivo.

202
PROGRAMAÇÃO EM PHP

Vamos tentar visualizar isso em nossa página.

Clique no Firefox.

Agora clique em Atualizar.

Está é forma como podemos setar valores em uma session e os puxar


para fora novamente.
203
PROGRAMAÇÃO EM PHP

Agora você pode visualizar o poder das sessions, podemos estocar uma
determinada informação em nosso servidor e não na máquina do usuário.

Se voltássemos e visualizássemos os cookies, nos veríamos apenas


aquele mesmo arquivo de ID, não veríamos nenhuma destas informações.

Essas informações estão armazenadas apenas em nossa máquina,


onde podemos ficar tranquilos em saber que somos os únicos a terem acesso
às mesmas.

Em geral isto seria tudo ao se trabalhar com sessions, falamos muito a


respeito dos benefícios de se trabalhar com elas, mas existe um lado negativo.
Nós acabamos de criar um arquivo em nosso servidor, correto?
Esse arquivo é um arquivo muito pequeno, pois a única informação contida
nele é um nome.

Mas com o tempo, esse arquivo pode vir a se tornar maior, poderemos
acrescentar dados muito maiores dentro do mesmo, e podemos acabar com
centenas ou milhares de arquivos.
Então devemos sempre ter em mente que seria uma boa prática limpar
estes arquivos de tempo em tempo.

Estes seriam os pros e contras da utilização de sessions.

Chegamos ao fim da décima aula, não deixe de efetuar os exercícios


propostos na apostila.

204
PROGRAMAÇÃO EM PHP

EXERCÍCIOS

1- Como é feita a setagem de Cookies?

2- Quais são as 3 partes principais de um Cookie?

3- Podemos contar que o cookie foi carregado mesmo não tendo sido exibida
mensagem alguma no navegador?

4- Como podemos excluir um cookie?

5- Qual a importância dos cookies?

6- Podemos confiar que os cookies sempre estarão à disposição com o mesmo


valor que setamos?
_

205
PROGRAMAÇÃO EM PHP

7- Onde fica armazenado o session?

8- O limite de informação a ser colocado em um cookie e um session é o mesmo?

9- O usuário poderá editar o conteúdo de um session?

10- O que o usuário poderá modificar no session?

11- Qual é a primeira coisa que deve ser colocada em nosso arquivo PHP
quando estivermos trabalhando com sessions?

12- Qual a desvantagem do uso de sessions?


_
_
_
_
_
_

206
PROGRAMAÇÃO EM PHP

EXERCÍCIO DE FIXAÇÃO

1- Crie dois arquivos, um chamado cookies.php e outro chamado


cookies_read.php.
2- Dentro de cookies.php digite o código abaixo e salve:

3- Dentro de cookies_read.php digite o código abaixo e clique em salvar.

207
PROGRAMAÇÃO EM PHP

Agora abra o arquivo cookies.php com o navegador Firefox.


4- Exiba as propriedades da página e clique em cookies para verificar se o
cookie foi armazenado no navegador.

5- Agora abra o arquivo cookies_read.php no Firefox e verifique se


você terá o resultado abaixo.

208
PROGRAMAÇÃO EM PHP

AULA 11

Um dos recursos mais úteis em PHP é a habilidade de incluir outros


arquivos em PHP dentro de nosso PHP atual.

Pode não ser imediatamente óbvio o porquê de isto ser algo bom, mas
isso irá nos ajudar a não nos repetirmos, o que é sempre uma boa prática ao
desenvolver código.

Esse é parte do motivo de criarmos funções, para que não tenhamos de


nos repetir, e assim possamos chamar aqueles pedaços de código da maneira
mais apropriada.

E caso tenhamos de mudar a forma de como o código funciona,


teríamos de mudar apenas em um lugar.

A mesma coisa pode acontecer com outros arquivos. Estes arquivos


podem conter nossas funções, para que possamos simplesmente trazer nossas
funções cada vez que desejarmos declara-las novamente ou podem incluir
HTML, basicamente qualquer coisa que desejarmos incluir em nosso arquivo.

Vamos ver então como isso irá funcionar.

Você pode notar que previamente criamos dois arquivos, include.php e


included_func.php.

209
PROGRAMAÇÃO EM PHP
A forma mais simples de demonstrarmos a você como utilizar includes e
quão útil eles serão, será por utilizarmos primeiramente nosso segundo
arquivo.
Clique em included_func.php.

Este arquivo se refere às funções que iremos incluir a nossa página em


PHP.

Por agora, vamos fazer algo muito simples, portanto apenas digite Teste
assim como na imagem abaixo.

210
PROGRAMAÇÃO EM PHP

Salve seu arquivo.


Acabamos de salvar o arquivo apenas com o conteúdo “Teste” dentro de
si, correto?

Vamos voltar agora a nosso include.php

Clique em include.php

Agora vamos inserir um pouco de PHP no interior da tag <body>


clicando no local indicado abaixo.

211
PROGRAMAÇÃO EM PHP

Deixe que nós coloquemos as tags iniciais do PHP para você.

Agora apenas digite include(“included_func.php”); como na imagem abaixo.

Salve seu arquivo.

Com este único comando nós agora incluímos o conteúdo da página


included_func.php para dentro de nossas include.php. Simples não acha?

Vamos ver se isso irá funcionar.

Abra o Firefox.

212
PROGRAMAÇÃO EM PHP
Agora deixe que nós executemos a página include.php para você.
Você pode perceber que ele realmente inclui a palavra “Teste” a nossa
página include.php.

Vamos voltar agora a estrutura de nossa included_func.php.

Clique em Notepad++.

213
PROGRAMAÇÃO EM PHP
Agora clique em included_func.php.

Você pode perceber que estamos lidando com um arquivo em PHP que
possui apenas texto dentro si e não há problema algum nisso, poderia ser
da mesma forma HTML, poderíamos estar carregando a informação
referente ao cabeçalho, por exemplo, ou poderíamos estar carregando
uma porção de
código em
PHP.

Algo
importante a
ser
lembrado,
você deverá
utilizar as tags
principais do
PHP sempre
que trabalhar
com código em
PHP, mesmo
se em nosso
arquivo
includes.php
nós já tivermos
iniciado as tags
iniciais.

214
PROGRAMAÇÃO EM PHP
O arquivo não irá deduzir que o código será PHP, assim como qualquer
outro arquivo em PHP, você deverá sempre especificar as tags iniciais para
que ele seja reconhecido como código em PHP.
Vamos então definir uma função dentro de nosso included_func.php
iremos inserir as tags iniciais do PHP para você.

Digite exatamente o código mostrado abaixo.

Salve o documento

Vamos agora voltar para a nossa include.php .

Clique em include.ph

215
PROGRAMAÇÃO EM PHP

Vamos inserir um novo bloco de PHP, mas deixe que nós façamos isso
para você.

Digite agora hello(“ Everyone”); assim como na imagem abaixo.

Salve o documento.

Agora como você pode imaginar, nossa função foi incluída e podemos
chama-la.
Vamos ver o nosso resultado no navegador.

Clique no Firefox.

216
PROGRAMAÇÃO EM PHP

Agora clique em Atualizar.

Como você pode ver, o resultado foi o esperado. Ele nos retornou a
frase “Hello Everyone!”.

217
PROGRAMAÇÃO EM PHP

Você pode perceber a utilidade de se utilizar os includes, pois você pode


ter um único arquivo ao desenvolver sua aplicação que irá incluir todas as suas
funções ou todas as funções que são relativas a um determinado tipo.

Talvez funções relativas à como preencher um formulário, elas podem


ser criadas em um arquivo ou vários arquivos e arquivos include podem incluir
outros arquivos.
Essa é a forma como poderemos estruturar nosso código que não
tenhamos de editar a função “Hello Everyone” em todo o momento que ela
ocorrer, nós podemos apenas incluí-la uma vez.

Há uma variação em includes que é interessante comentarmos por um


momento.

Essa seria require. E require faz basicamente a mesma coisa que


include faz, mas ele nos retorna um erro caso o arquivo não consiga ser
carregado por alguma razão, se não for encontrado, então ele nos retornar um
erro fatal e não irá continuar com o restante do programa.

218
PROGRAMAÇÃO EM PHP

Include irá tentar carregar o arquivo, mas não irá gerar um erro.

Então iremos utilizar o require quando tivermos funções que


definitivamente estivermos requisitando.

Existe ainda uma última variação referente a include e require, está seria
require_once.

require_once é referente a toda a função que não desejamos incluir mais


de uma vez em nosso código, toda a função que deverá ser incluída uma única
vez, ao utilizar o require_once, toda a ocorrência da função que for encontrada
depois da primeira, será ignorada.

Páginas Dinâmicas:

Uma das principais vantagens de trabalhar com páginas dinâmicas, é


poder armazenar os conteúdos em bases de dados. Desta forma, podemos
organizá-los, atualizá-los e procurá-los de uma maneira muito mais simples.

A linguagem PHP oferece interfaces para o acesso a maioria das bases


de dados comerciais e por ODBC (Open Data Base Connectivity) a todas as
bases de dados possíveis em sistemas Microsoft, a partir das quais poderemos
editar o conteúdo do nosso site com extrema facilidade.

Esta interação realiza-se, por um lado, a partir das funções que o PHP
nos oferece para cada tipo de base de dados e, por outro estabelecendo um
diálogo a partir de um idioma universal: SQL (Structured Query Language) o
qual é comum a todas as bases de dados.

Esta linguagem torna-se muito potente e fácil de aprender.

Nas aulas anteriores você viu como deixar páginas WEB mais interativas
e dinâmicas utilizando PHP.

Hoje você aprenderá um pouco a respeito da integração de PHP com


Banco de Dados MySQL.

Nosso foco na aula de hoje será a criação de uma conexão MySQL via
PHP.

Para criarmos uma conexão MySQL, precisaremos primeiramente de 3


informações:
Endereço de nosso servidor, nome de usuário e senha do mesmo.

Você deve ter isso sempre em mente, você deverá ter conhecimento do
endereço do servidor MySQL, seu nome de usuário no banco e a senha deste
usuário no banco.

Assim como você se conecta a um e-mail onde você determina seu


endereço, por exemplo, www.gmail.com e logo em seguida insere seu usuário
e senha, em um banco de dados o processo não é diferente.

219
PROGRAMAÇÃO EM PHP

Como iremos criar essa conexão com o PHP?

Como você pode ver, já criamos previamente para você um arquivo


chamado conexao.php, este será o arquivo onde iremos criar nossa conexão
com o banco de dados.

Antes de qualquer coisa, deveremos criar as tags iniciais do PHP dentro


de nosso arquivo.
Deixe que nós criemos as tags iniciais do PHP para você, elas são de
vital importância para que a conexão seja reconhecida e nosso código em PHP
seja assimilado. Tudo que estiver fora destas tags, será ignorado e executado
como um texto.

220
PROGRAMAÇÃO EM PHP

Agora o que devemos fazer é criar uma variável dentro das tags, mas
antes disso, tempos de aprender algo muito importante.

Iremos utilizar uma função chamada mysql_connect, seria interessante


verificarmos a fundo seu significado para termos uma noção melhor, para isso
clique em Firefox.

Agora clique na Barra de Navegação.

221
PROGRAMAÇÃO EM PHP

Digite http://php.net/mysql_connect e pressione Enter para acessar a


página exibida abaixo.

Como você pode ver, ela abre uma conexão com o servidor MySQL.

Para sua utilização, precisaremos de como já foi comentado, três


elementos principais:

222
PROGRAMAÇÃO EM PHP

Endereço do servidor, em formato de string, isto é, estando entre aspas


duplas.
Nome de usuário do servidor, também em formato de string.
E a senha do usuário, também estando em formato de string.
Com estes três elementos principais, você já estará apto a efetuar uma
conexão com o servidor MySQL.

Vamos voltar agora a nosso arquivo conexao.php.

Clique em Notepad++.

223
PROGRAMAÇÃO EM PHP

Agora estando de volta a estrutura de nossa conexao.php, vamos criar


uma variável utilizando a função mysql_connect.

Digite $conexao = mysql_connect("localhost", "root", "") assim como


na imagem abaixo.

Como você pode


ver, inserimos em
nossa função, os
parâmetros referentes a
nosso banco de dados.

Já que estamos
utilizando o servidor
web em nossa máquina
local, seu endereço
será “localhost”.

Por padrão o
MySQL cria um usuário
chamado root, portanto
determinamos seu
nome como root.

Logo em seguida
deixamos um campo
em branco, pois não há
senha para o usuário
root.
Salve seu arquivo.

224
PROGRAMAÇÃO EM PHP

A princípio, esta simples linha de código, fará com que nos conectemos
com o servidor MySQL.

Vamos visualizar o resultado de nosso arquivo no navegador.

Clique em Firefox.

Deixe que nós executemos o arquivo conexao.php para você.

225
PROGRAMAÇÃO EM PHP
Como você pode notar, ele não nos retornou nada. Isso porque não
determinamos nenhum echo em nosso PHP para que ele nos exiba alguma
mensagem.

Vamos fazer isso agora, clique em Notepad++.

Agora clique no fim da variável $conexao, no local indicado abaixo.

226
PROGRAMAÇÃO EM PHP

Pressione a tecla Enter e digite echo "Conectado com sucesso ao


MySQL!"; para que seu código fique similar a imagem abaixo.

Esse echo exibirá uma mensagem de conexão bem sucedida.

227
PROGRAMAÇÃO EM PHP

Mas e se por algum motivo não conseguirmos nos conectar? Nesse


caso, existe mais um pouco de código a ser acrescentado.
Clique no final da variável $conexao.

Pressione a tecla Backspace.


Digite or die ("Falha ao conectar."); para que seu código fique similar ao da
imagem abaixo.

O parâmetro or die será responsável por exibir uma mensagem de erro


caso a conexão seja mal sucedida.
Salve seu arquivo.
Agora clique em Firefox.
228
PROGRAMAÇÃO EM PHP

Atualize sua página.

Como você pode ver, nossa conexão foi bem sucedida, pois todos os
nossos parâmetros estão de acordo.

Vamos agora verificar o que aconteceria caso ocorresse algum erro de


parâmetro.
229
PROGRAMAÇÃO EM PHP

Clique em Notepad++.

Agora vamos modificar um pouco código para você.

Perceba que agora nosso endereço do servidor está como localhostS,


isto não está correto, concorda?

Salve seu arquivo.

Vamos verificar se nosso navegador irá nos indicar o erro da forma como
esperamos.
230
PROGRAMAÇÃO EM PHP

Clique em Firefox.

Agora clique em Atualizar.

Como você pode ver o resultado não só foi um erro, como nos exibiu o
que definimos em nosso código PHP “Falha ao conectar.”.

Essa é a forma mais simples de efetuarmos uma conexão com o servidor


MySQL via PHP.
Chegamos ao fim da décima primeira aula, não deixe de efetuar os
exercícios propostos na apostila.

231
PROGRAMAÇÃO EM PHP

EXERCÍCIOS

1- Qual é um dos motivos de criarmos funções?

2- Podemos incluir o conteúdo de um arquivo dentro de outro utilizando PHP?

3- Cite uma utilidade no uso de includes:

4- Qual a diferença de include e require?

5- O que faz o require_once?

6- Cite uma das principais vantagens ao se trabalhar com páginas dinâmicas:

232
PROGRAMAÇÃO EM PHP

7- É possível interagir com uma base de dados via PHP?

8- Que três informações são necessárias para criarmos uma conexão com o
banco de dados?

9- Que função é responsável pela conexão com o banco de dados?

10- Se nosso servidor estiver em nossa máquina local, qual será seu endereço?

11- O parâmetro or die é responsável pelo que?

233
PROGRAMAÇÃO EM PHP

EXERCÍCIO DE FIXAÇÃO

1- Crie um arquivo em PHP chamado conexao.php, dentro dele utilize o


conteúdo aprendido em aula para criar uma conexão MySQL.

234
PROGRAMAÇÃO EM PHP

AULA 12

Falaremos agora um pouco mais a respeito da interação do PHP com


Banco de Dados.

Iniciaremos a criação de um sistema de cadastro que armazenará


informações no banco de dados.
Primeiramente devemos criar um novo banco, para isso vamos utilizar o
phpMyAdmin.
phpMyAdmin é um programa de computador desenvolvido em PHP para
administração do MySQL pela Internet.
A partir deste sistema é possível criar e remover bases de dados, criar,
remover e alterar tabelas, inserir, remover e editar campos, executar códigos
SQL e manipular campos chaves.
O phpMyAdmin é muito utilizado por programadores web que muitas
vezes necessitam manipular bases de dados.
Normalmente, o phpMyAdmin é tratado como uma ferramenta
obrigatória em quase todas as hospedagens da web, além de pacotes off-line,
como o WAMPServer, XAMPP, EasyPHP e PHP Triad.
Vamos acessa-lo então, para isso devemos clicar com o botão direito no
ícone do EasyPHP localizado na barra de tarefas, mas deixe que nós façamos
isso para você.

235
PROGRAMAÇÃO EM PHP

Selecione a opção Local Web.

Clique no local indicado.

236
PROGRAMAÇÃO EM PHP

Na linha de módulos, clique na primeira opção de Open.

Você pode visualizar a página principal do PhpMyAdmin, o que faremos


primeiramente será criar um novo banco de dados.

Clique em Base de Dados.

Digite teste, este será o nome de nossa base de dados.


237
PROGRAMAÇÃO EM PHP

Agora clique em Criar.

Como você pode ver, foi criada nossa base de dados “teste”, ela não
possui nenhuma tabela ou informação, iremos acrescentar algumas delas
agora.

238
PROGRAMAÇÃO EM PHP

Clique em teste, depois clique no local indicado.

Digite usuarios, este será o nome de nossa primeira tabela.

Clique agora no local indicado abaixo.

239
PROGRAMAÇÃO EM PHP

Digite 4

Agora clique em Executar.

Nesse momento, teremos de definir algumas informações para a tabela


usuários.
Como você pode ver, temos 4 campos a serem preenchidos, vamos
preencher o primeiro agora.
Clique no local indicado abaixo.

240
PROGRAMAÇÃO EM PHP

Digite ID

Como seu tipo já está definido como INT, vamos deixa-lo como está.

Agora clique em tamanho.

241
PROGRAMAÇÃO EM PHP

Digite 16, será o número máximo de caracteres permitidos.

Agora clique no local indicado abaixo para que possamos verificar o


resto das informações.

Clique em Índice.

242
PROGRAMAÇÃO EM PHP

Selecione a opção PRIMARY.

Clique agora na caixa indicada abaixo.

243
PROGRAMAÇÃO EM PHP

Essa caixa referente à ação de Auto Increment, isso fara com que nosso
próximo cadastro sempre tenha seu ID automático.

Clique no local indicado abaixo para voltar à parte inicial da página.

Vamos acrescentar as informações referentes à segunda coluna.

244
PROGRAMAÇÃO EM PHP
Clique em Nome.

Digite agora nome

Clique agora em Tipo.

Selecione a opção VARCHAR. Valores no campo VARCHAR são strings


de tamanho variável.

245
PROGRAMAÇÃO EM PHP

Clique agora em Tamanho.

Digite 50

Agora vamos acrescentar as informações referentes à terceira coluna.

Clique em Nome.
246
PROGRAMAÇÃO EM PHP

Digite login

Clique agora em Tipo.

Selecione a opção VARCHAR.

247
PROGRAMAÇÃO EM PHP

Clique agora em Tamanho.

Digite 20

Agora vamos acrescentar as informações referentes à quarta coluna.

248
PROGRAMAÇÃO EM PHP
Clique agora em Nome.

Digite senha

Agora clique em Tipo.

Selecione a opção VARCHAR.

249
PROGRAMAÇÃO EM PHP

Clique agora em Tamanho.

Digite 12

250
PROGRAMAÇÃO EM PHP
Pronto, acrescentamos todas as informações necessárias referentes à
nossa tabela usuários.
Clique em Guarda.

Vamos agora acrescentar um usuário, primeiramente via PhpMyAdmin.


Para isso, clique em SQL.

Esta é a tela de edição do SQL:

251
PROGRAMAÇÃO EM PHP

Digite agora insert into usuarios (ID, nome, login, senha) e pressione a
tecla Enter.

Agora digite values („‟, "Pedro", "pedro", 123);

Clique agora em Executar.

252
PROGRAMAÇÃO EM PHP

Você pode verificar que nossa linha foi inserida, agora vamos visualiza-la.

Clique em Usuários.

Como você pode ver, já temos nosso primeiro usuário cadastrado no


banco de dados.

253
PROGRAMAÇÃO EM PHP

Mas você deve estar se perguntando, como eu posso criar esse


cadastro utilizando o PHP que já estudei?
Você pode perceber que criamos previamente para você dois arquivos
em PHP, cadastro.php e process_cadastro.php. Ambos estão armazenados em
nossa phpteste.

Você pode ver que em nossa cadastro.php temos uma estrutura básica em
HTML.
254
PROGRAMAÇÃO EM PHP

Iremos acrescentar um formulário simples e iremos lhe explicar como ele


foi desenvolvido, mas você já está familiarizado com este procedimento não é?

Como pode ver, criamos um formulário que será enviado a página


process_cadastro.php utilizando o método post.

Temos aqui as linhas de código referentes à criação de um Nome, Login e Senha.

E finalmente a linha de código referente a seu Envio.

255
PROGRAMAÇÃO EM PHP

Pare um minuto e analise o código com calma, caso você não se lembre
muito bem de como funciona sua estrutura.
Salve seu arquivo.
O que precisaremos fazer agora e editar nossa process_cadastro.php
Para isso, clique no local indicado abaixo.

256
PROGRAMAÇÃO EM PHP
Como você pode ver, dentro de nossa process_cadastro.php temos uma
estrutura básica em HTML e logo dentro da tag <body> temos as tag inicias do
PHP.

Clique no local indicado abaixo.

Criaremos
agora uma
porção de
código referente
à conexão de
banco de dados,
seleção
de banco e
acrescento de
informações.

Primeiro
criaremos a
conexão com o
banco de dados,
criaremos
também um or
die para caso o
banco não seja
encontrado.

Digite:

$conexao = mysql_connect("localhost", "root", "") or die ("Falha ao


conectar.");

E pressione Enter.

257
PROGRAMAÇÃO EM PHP

Agora pressione Enter novamente para termos um código mais legível.


Vamos acrescentar agora o código responsável pela seleção de nosso
banco “teste”, também colocaremos um or die para caso o PHP não encontre
nosso banco.

Digite mysql_select_db("teste", $conexao) or die ("Falha ao conectar no


banco."); e pressione Enter.

Pressione Enter novamente para termos um código mais legível.


Vamos criar agora três variáveis, uma para Nome, uma para Login e uma
para Senha.
Confira na imagem abaixo.

Pressione Enter mais uma vez para termos um código mais legível.
Vamos acrescentar agora as linhas de código responsáveis pela adição
destas informações no banco de dados.

258
PROGRAMAÇÃO EM PHP

Digite $inserir = mysql_query("insert into usuarios (ID, nome, login, senha)


e pressione Enter.

Para deixarmos o código mais legível, vamos pressionar TAB algumas


vezes para você. Digite values (“”, '".$username."', '".$login."',
'".$password."')", $conexao); e pressione Enter.

Agora vamos criar um echo referente ao que acontecerá se todos dados


forem acrescentados com sucesso.
Digite echo "Cadastro efetuado com sucesso!";

259
PROGRAMAÇÃO EM PHP

Salve o seu arquivo.


Agora vamos verificar o resultado de nosso código no navegador.
Clique em Firefox.

Deixe que nós executemos nossa cadastro.php para você.


Como pode ver, temos nosso formulário de cadastro funcionando
corretamente.

260
PROGRAMAÇÃO EM PHP

Vamos acrescentar algumas informações nele.


Clique em Nome:

Digite agora Ivo da Silva

261
PROGRAMAÇÃO EM PHP

Agora clique em Login:

Digite ivo

Agora clique em Senha:.

Escreve ivo123
Agora clique em Enviar.
262
PROGRAMAÇÃO EM PHP

Como pode ver, recebemos a mensagem de que nosso cadastro foi


efetuado com sucesso, mas para termos certeza, vamos verificar em nosso
PhpMyAdmin.

Para isso deveremos clicar com o botão direito em EasyPHP, mas deixe
que nós façamos isso para você.
263
PROGRAMAÇÃO EM PHP

Posicione o cursor do mouse sobre a opção Configuração.

Selecione PhpMyAdmin.

Clique no local indicado abaixo.

264
PROGRAMAÇÃO EM PHP

Clique em Open.

Clique em teste.

265
PROGRAMAÇÃO EM PHP

Clique na tabela usuarios.

Como você pode ver, o usuário Ivo da Silva foi cadastrado com sucesso.

Esse tipo de formulário é muito útil se estivermos trabalhando com uma


aplicação que limite acesso para cada um dos usuários, podemos usá-lo para
criar diversos usuários e depois verificarmos suas informações pelo
PhpMyAdmin.

Não deixe de efetuar os exercícios propostos em sua apostila. Até mais.

266
PROGRAMAÇÃO EM PHP

EXERCÍCIOS

1- O que é phpMyAdmin?

2- O phpMyAdmin é utilizado normalmente por quem?

3- Qual o caminho para acessarmos o phpMyAdmin no EasyPHP?

4- Qual a função da caixa Auto Increment?

5- O que são os valores no campo VARCHAR?

6- Através de qual aba do phpMyAdmin podemos acrescentar dado?

7- Que tipo de página criamos para interagir com o banco de dados?

267
PROGRAMAÇÃO EM PHP

8- Qual o objetivo da função $conexao = mysql_connect("localhost", "root", "")?

9- Qual o objetivo da linha de código or die ("Falha ao conectar.");?

10- Qual a função da linha de código $inserir = mysql_query("insert into


usuarios (ID, nome, login, senha)?

11- Para que tenhamos certeza de que o cadastro foi efetuado com sucesso, o
que devemos fazer?

268
PROGRAMAÇÃO EM PHP

EXERCÍCIO DE FIXAÇÃO

1- Crie um arquivo em PHP chamado conexao.php, dentro dele utilize o


conteúdo aprendido em aula para criar uma conexão MySQL.

269
PROGRAMAÇÃO EM PHP

AULA 13

Nas aulas anteriores você aprendeu a inserir dados no banco de dados


por meio do phpMyAdmin.
Também vimos um pouco sobre como inserir dados utilizando funções
em PHP. Mas vamos imaginar que já cadastramos diversos usuários, e agora
precisamos listar todos eles em uma página.
O PHP nos permite fazer esse tipo de ação, vamos aprender agora
como desenvolver esse tipo de código na prática.
Como você pode notar, criamos previamente para você um arquivo
chamado lista.php, ele está salvo em nossa phpteste.

Como de costume, iremos inicialmente acrescentar as tags iniciais do PHP.

Digite <?php e pressione Enter.

Pressione novamente Enter.

Agora digite ?> e verifique se seu código está igual ao da imagem abaixo.

270
PROGRAMAÇÃO EM PHP

Clique no interior das tags iniciais do PHP.

Pronto, as tags iniciais do PHP estão adicionadas, o que devemos fazer


primeiramente agora, é criar uma conexão com o banco de dados, sempre
criando um or die em caso de nossa conexão falhar.

Digite $conexao = mysql_connect("localhost", "root", "") or die ("Falha ao


conectar."); e pressione a tecla Enter.

Pressione Enter mais uma vez para temos um código mais legível.

271
PROGRAMAÇÃO EM PHP

Agora devemos selecionar nosso banco “teste”, sempre adicionando um


or die em caso de nossa conexão falhar.

Digite: mysql_select_db("teste", $conexao) or die ("Falha ao conectar no


banco.");

Pressione Enter mais uma vez para temos um código mais legível.
Agora vamos criar uma variável que será responsável por efetuar uma
consulta ao banco de dados.
272
PROGRAMAÇÃO EM PHP

Digite $query = mysql_query("Select * from usuarios", $conexao);

Você pode notar que temos uma função no interior de nossa variável
chamada mysql_query.

Vamos descobrir o que isso significa? Clique no Firefox.

Clique na Barra de Navegação.

273
PROGRAMAÇÃO EM PHP

Digite: http://php.net/function.mysql-query.php e pressione Enter.

Agora estamos visualizando o manual do PHP e a descrição da função


mysql_query.

274
PROGRAMAÇÃO EM PHP
Como você pode notar ela envia uma consulta para o banco de dados
atualmente ativo no servidor.
Agora que entendemos como essa função funciona, podemos voltar ao
nosso código.
Clique em Notepad++.

Como você pode ver, estamos solicitando que a função mysql_query


selecione todos os dados da tabela usuarios.

Pressione Enter agora para deixarmos nosso código mais legível.

275
PROGRAMAÇÃO EM PHP
Agora vamos criar uma variável responsável por perguntar o número de
linhas que existem em nossa consulta anterior.
Digite: $nLinhas = mysql_num_rows($query);

Vamos verificar a descrição completa dessa função no manual do PHP.

Clique em Firefox.

Vamos modificar o endereço de mysql_query para mysql_num_rows,


você certamente está lembrado desse procedimento que foi efetuado em aula.

276
PROGRAMAÇÃO EM PHP

Como você pode notar, essa função é responsável por obter o número
de linhas de um conjunto de resultados (Get number of rows in result).

Agora que entendemos o funcionamento da função mysql_num_rows,


vamos voltar a nosso código.

277
PROGRAMAÇÃO EM PHP

Clique em Notepad++.

Pressione Enter para deixarmos nosso código mais legível.


Nesse momento, devemos criar um for referente à leitura de linhas de
nossa consulta.
Digite for ($i=0; $i < $nLinhas ; $i++) e pressione Enter.

O que estamos dizendo aqui é que a variável $i é igual a 0, e enquanto


ele for menor que a variável nLinhas, teremos um incremento de mais um.

278
PROGRAMAÇÃO EM PHP

Digite { e pressione Enter.

Pressione Enter mais uma vez para termos um código mais legível.

Agora devemos pressionar a tecla TAB algumas vezes para termos um


código mais legível, mas deixe que nós façamos isso para você.

Vamos criar agora as linhas de código responsáveis pela exibição de


nossa consulta.

Digite agora:
echo "<b>" . mysql_result($query, $i, "nome"). "</b>" .":
</br>&nbsp&nbsp&nbsp&nbsp&nbsp" .

Como na imagem abaixo.

279
PROGRAMAÇÃO EM PHP

Você pode notar que temos uma função chamada mysql_result dentro
dessa linha de código.

Vamos verificar seu significado com a ajuda do manual do PHP.

Vamos modificar o endereço de mysql_ num_rows para mysql_result,


você certamente está lembrado desse procedimento que foi efetuado em aula.

Como você pode ver, essa função é responsável por retornar os dados de
seu resultado.

Muito bem, agora vamos voltar a nosso código.

280
PROGRAMAÇÃO EM PHP

Clique em Notepad++.

Como você pode perceber, estamos pedindo o resultado de “nome”.

Também estamos dizendo que os “nomes” serão exibidos em negrito,


apenas para terem um destaque a mais.

281
PROGRAMAÇÃO EM PHP

Os caracteres &nbsp que você digitou diversas vezes, são responsáveis


por criar um espaço que não é assimilado apenas por digitarmos a tecla de
espaço.
Fazendo isso estamos dizendo que os nomes ficarão alinhados de certa
forma e os dados referentes a cada usuário de outra.

Pressione agora a tecla Enter para termos um código mais legível.

282
PROGRAMAÇÃO EM PHP
Agora devemos pressionar a tecla TAB diversas vezes, mas deixe que
nós façamos isso para você.
Agora digite "\tId: " . mysql_result($query, $i, "ID") . e pressione a tecla Enter.

O que fizemos aqui foi basicamente à mesma coisa que fizemos


anteriormente, pedindo agora o resultado referente ao ID.

A única diferença foram os caracteres \t que colocamos primeiramente,


pois eles são responsáveis por criar uma simples tabulação, deixando assim
nosso resultado mais organizado.

283
PROGRAMAÇÃO EM PHP
Digite agora: "\tLogin: " . mysql_result($query, $i, "login") . e pressione a
tecla Enter.

O que fizemos aqui foi basicamente a mesma coisa que fizemos


anteriormente, pedindo agora o resultado referente ao login.

Digite agora:

"\tSenha: " . mysql_result($query, $i, "senha") . "</br>";

284
PROGRAMAÇÃO EM PHP

E pressione Enter.

O que fizemos aqui


foi basicamente a mesma
coisa que fizemos
anteriormente, pedindo
agora o resultado referente
a senha.
Digite agora:

}
E pressione Enter.

Terminamos nosso
código referente a listagem
de usuários, o que faremos
agora é verificar se tudo
construído de um forma
correta e organizada por
meio de nosso navegador.

Clique no Firefox.

Digite:
http://localhost/phpteste/lista.php
Na Barra de Navegação e pressione Enter.
Como você pode ver, a listagem de usuários foi efetuada com sucesso.

285
PROGRAMAÇÃO EM PHP
Isso é muito útil caso seja necessário emitir um relatório de todos os
usuários, seus nomes, senhas, talvez endereços dependendo do que foi
determinado no banco e no código em PHP.
Chegamos ao fim da décima terceira aula. Não esqueça de fazer os
exercícios propostos em sua apostila.

286
PROGRAMAÇÃO EM PHP

EXERCÍCIOS

1- Devemos criar uma conexão em nossa página PHP para que possamos listar
os dados?

2- Devemos selecionar o banco de dados utilizado para o cadastro dos


usuários ou criar um novo banco?

3- O que a função mysql_query faz?


_

4- O que a função mysql_num_rows faz?

5- O que a função mysql_result faz?

287
PROGRAMAÇÃO EM PHP

EXERCÍCIO DE FIXAÇÃO

1. Acesse o phpMyAdmin e crie um banco de dados chamado usuários,


coloque 4 colunas nesse banco: ID, nome, login e senha.

2. Insira um novo usuário nessa tabela utilizando a opção SQL.

2. Agora crie um arquivo chamado cadastro.php com o seguinte código.

288
PROGRAMAÇÃO EM PHP

4. Crie um outro arquivo chamado process_cadastro.php com o seguinte


código.

5. Abra o arquivo cadastro.php no Firefox e cadastre um aluno.

289
PROGRAMAÇÃO EM PHP

AULA 14

Porque utilizar PHP?

Veremos agora diversos aspectos que nos darão certeza do porque não
só podemos mas devemos utilizar o PHP e seus recursos no Desenvolvimento
Web.

Identidade

O PHP é, assim como Java e .NET, uma linguagem de programação e


uma plataforma global.

Como linguagem de programação, PHP tem uma sintaxe bastante


parecida com C, Shell, Perl e Java.

Com PHP é possível desenvolver:


•Aplicações Web dinâmicas (websites, intranets,
extranets, etc); •Aplicações desktop (PHP-GTK e
PHP4Delphi); •Rich Clients (PHP-XUL);
• Web Services (SOAP, XML-RPC, REST);
•Scripts de linha de comando;
•Tarefas de segundo plano.

Cerca de 1000 engenheiros desenvolvem o PHP.

O PHP é Software Livre, distribuído sob uma licença na qual os usuários


não são obrigados a publicar seu código.

A portabilidade é uma das maiores vantagens do PHP, possibilitando


sua instalação em vários Sistemas Operacionais como: Windows, Linux, Unix,
IBM iSeries, SGI IRIX, RISC OS, Netware Novell, Mac OS X e AmigaOS.

Estatísticas de Uso

Segundo a NetCraft, o PHP é utilizado em um a cada três sites na


Internet. Ou seja, mais de 20 milhões de domínios. 35% da Internet roda PHP.

Porque utilizar o PHP na sua empresa?


Simplicidade:

O PHP é uma linguagem com um modelo de desenvolvimento muito


simples.

O objetivo inicial do PHP era tornar possível um desenvolvimento rápido


sem um treinamento preliminar.

Esse objetivo foi alcançado, fazendo com que a maioria das empresas
de hospedagem ofereça PHP nos seus servidores.
Adaptabilidade

290
PROGRAMAÇÃO EM PHP
O PHP usa duas sintaxes. Uma é procedural e a outra é orientada a
objetos.

A procedural é utilizada por webmasters que trabalham na interface com o


usuário.

Já a sintaxe Orientada a Objetos é propositalmente similar ao Java e C#,


com o objetivo de reduzir os custos com treinamento e encorajar a migração
para o PHP.
Portabilidade

Disponível para a maioria dos sistemas operacionais, o PHP funciona da


mesma maneira que a Máquina Virtual do Java (JVM).
Após desenvolver a aplicação, ela irá funcionar imediatamente, sem a
necessidade de recompilar, independente de qual sistema operacional está
sendo utilizado.
Durabilidade
A durabilidade de uma tecnologia depende principalmente da quantidade
de usuários.
O PHP é utilizado por mais de 4.500.000 desenvolvedores no mundo,
fazendo com que sua comunidade seja extremamente forte e atuante.
Performance
O PHP tem uma grande performance e estabilidade. A combinação
Linux/Apache/PHP é muito forte.
Retorno do investimento
Os pontos citados anteriormente resultam em um rápido retorno do
investimento.
Isso é possível graças à ausência de custos com licenças, pequeno
custo com treinamentos, entre outros.
Arquitetura técnica

Na maioria das vezes o PHP é utilizado com:

•Um Servidor Web: Apache ou Microsoft IIS;


•Um SGDB (banco de dados): MySQL, PostgreSQL, Oracle, SQL Server,
etc.

A maioria das plataformas utilizam Linux, Apache, MySQL e PHP


(Conhecido como LAMP).
Mecanismo interno

O núcleo interno do PHP 5 é o Zend Engine 2. O PHP é feito com uma


arquitetura modular, e utiliza os mesmos conceitos do Java e .NET.

Um pré-compilador compila o código e envia para a execução em tempo


real.
Essa arquitetura permite que engenheiros utilizem ferramentas de
otimização (opcode cache).

Uma plataforma que resolve problemas de integração.

Muitos conectores

291
PROGRAMAÇÃO EM PHP
Cerca de 40% dos custos de desenvolvimento estão na integração de
aplicações ou fontes de dados. Para reduzir esses custos, o PHP pode
conectar diretamente com a maioria dos bancos de dados, sistemas de
pagamentos online e protocolos.

O Ecossistema PHP
Após 10 anos de vida, o PHP construiu um grande ecossistema.
Algumas ferramentas tornam o desenvolvimento mais fácil e rápido.

A comunidade de Software Livre vem produzindo aplicações


empresariais há vários anos. Essas aplicações ajudam empresas a encontrar
suas necessidades.

Como a plataforma PHP atualmente domina a Internet é muito


importante ter acesso a um grande número de recursos, empresas e
desenvolvedores.

No Brasil a comunidade do PHP é muito grande. O PHP Brasil


Comunidades é composto por vários grupos regionais.

Em vários anos o PHP teve poucos avisos de segurança. Utilizado com


o Linux e Apache, o resultado é a plataforma mais segura para a Internet.

Como seu código fonte está disponível e está constantemente sendo


melhorado pela comunidade, é a melhor tecnologia para proteger informações
importantes e confidenciais.

Não é à toa que empresas consagradas como Yahoo, Facebook,


Wikipédia que recebem milhões de acessos diários escolheram o PHP!

292
PROGRAMAÇÃO EM PHP

EXERCÍCIOS

O PHP é Software Livre ou Privado?

De um motivo pelo qual seria interessante utilizarmos PHP em nossa empresa.

Quais são as duas sintaxes utilizadas pelo PHP?

Existem comunidades de PHP no Brasil?

Cite algumas empresas que fazem uso constante de PHP.

293
PROGRAMAÇÃO EM PHP

EXERCÍCIO DE FIXAÇÃO

1- Crie três arquivos: edit_cad1.php, editcad.php e alteraCadastro.php.


2- Dentro de editcad1.php insira o seguinte código:

6. Dentro de editcad.php insira o seguinte código:

294
PROGRAMAÇÃO EM PHP

7. Dentro de alteraCadastro.php digite o código abaixo.

Tendo criado e salvado os três arquivos, abra o edit_cad1.php no seu


navegador.

8. Modifique login e senha dos três primeiros usuários e feche o navegador.

295
PROGRAMAÇÃO EM PHP

ANOTAÇÕES

296

Você também pode gostar