Escolar Documentos
Profissional Documentos
Cultura Documentos
Capa
Folha de rosto
Copyright
Agradecimentos
Sobre a autora
Apresentação
1.1 Variáveis
1.2 Operadores
1.5 Arrays
1.8 Arquivos
Gabarito do Capítulo 1
2.3 Herança
2.8 Dependência
2.9 Arquivos
Gabarito do Capítulo 2
3.2 Bibliotecas
Gabarito do Capítulo 3
Sobre a autora
Graduada em Ciência da Computação pela Universidade do Vale do Itajaí (2005), mestra em Ciência
da Computação pela Universidade Federal de Santa Catarina (2007), doutora em Informática na
Educação pela Universidade Federal do Rio Grande do Sul (2011) e realiza pós-doutorado na
Universidade de Athabasca, Canadá. Atua como docente superior desde 2007 (disciplinas:
Programação OO, Programação Web, Desenvolvimento Web, Engenharia de Software, entre outras).
Atualmente, leciona no Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul.
Possui experiência na área de Programação Web e Informática da Educação, e trabalha com
desenvolvimento de sistemas em PHP desde 2001.
Apresentação
Este livro apresenta 200 questões resolvidas utilizando a linguagem de programação PHP. Você
encontrará desde problemas simples, envolvendo operadores e estruturas de controles, até inclusive
alguns desafios utilizando bibliotecas reconhecidas pela comunidade PHP.
É possível que você encontre em alguns livros e sites outras tags válidas. Para elas funcionarem, é
necessário que a configuração do PHP habilite o funcionamento.
Agora que você já sabe como criar e executar páginas PHP, vamos conhecer um pouco mais da
linguagem!
1.1 Variáveis
As variáveis são locais onde podemos armazenar informações textuais, numéricas, etc. Diferentemente das
demais linguagens de programação, o PHP não exige a declaração delas, nem a determinação de seu tipo de
dado. Ao utilizar uma variável pela primeira vez, ela já está automaticamente criada. Além disso, a variável
pode conter um número e, na linha seguinte, receber uma palavra. Entretanto, existem algumas regras para a
criação das variáveis:
• Toda variável inicia com o símbolo $.
• O nome da variável deve iniciar com letras ou o símbolo _, podendo ser seguido de letras, números e _
.
• Elas não podem conter caracteres especiais, como: &, +, -, <, etc.
• Ainda existem variáveis cujos nomes são reservados para o próprio PHP, como: $_GET, $_POST,
$_FILES, $_SESSION, $_COOKIE, $_REQUEST, $_SERVER, etc. Vamos conhecê-las ao longo do
livro.
Exercício 1. Variáveis válidas
Assinale com X as alternativas que representam nomes de variáveis válidas para o PHP:
() $_nome () Ssid
() $1numero () $abc
() $_GET () $variável
() $calça () $z99
() $valor () $soma
() $abcdefghijklmnopqrstuvwxyz () $_files
() $guarda-chuva () $profissão
Para atribuir um valor a uma variável PHP, basta utilizar o símbolo =, em que $variavel = “valor”. Para
exibir essa informação na tela, utilizamos a função echo.
Exercício 2. Processando o código: variáveis
Ao executar os códigos PHP a seguir, escreva como ficará o resultado na tela do navegador.
1.2 Operadores
Para realizar cálculos aritméticos, podemos utilizar os operadores de soma (+), substração (-),
multiplicação (*), divisão (/) e resto (%). Já os operadores relacionais permitem verificar se um valor é
maior que o outro, enquanto os operadores lógicos indicam se uma expressão é verdadeira ou falsa.
É possível ainda combiná-los com funções matemáticas de data e hora. Para conhecê-las, acesse o
site http://www.php.net.
Exercício 3. Processando o código: operadores aritméticos
Ao executar os códigos PHP a seguir, escreva como ficará o resultado na tela do navegador.
Exercício 4. Processando o código: operadores lógicos e relacionais
Ao executar os códigos PHP a seguir, escreva como ficará o resultado na tela do navegador.
Exercício 5. Processando o código: funções de data e string
Ao executar os códigos PHP a seguir, escreva como ficará o resultado na tela do navegador.
Exercício 6. Operações aritméticas
Dadas três variáveis com os seguintes valores ($n1 = 2, $n2 = 5, $n3 = 8), faça um programa em PHP que:
a) determine a soma dos três números, e b) determine a raiz quadrada do produto dos três números.
Exercício 7. Diferença de datas
Usando a função mktime, faça uma página PHP que calcule a diferença de dias entre as seguintes datas:
28/02/2016 e 04/03/2016.
Exercício 8. Troca de strings
Faça uma página PHP que armazene numa variável a mensagem: “Comentários do Facebook não estão
disponíveis no Google”. Substitua a palavra Facebook por Google e Google por Facebook, gerando a frase:
“Comentários do Google não estão disponíveis no Facebook”. Mostre na tela a frase modificada.
Exercício 9. Inversão de strings
Faça uma página PHP que armazene numa variável a mensagem: “Palavra”, e inverta essa mensagem,
mostrando como resultado na tela: “arvalaP”.
1.5 Arrays
Os arrays são estruturas que permitem o armazenamento de várias informações em uma variável.
Diferentemente das outras linguagens de programação, o PHP permite que diferentes tipos de dados
sejam armazenados em um único array. Veja o exemplo da Figura 2, no qual criamos um array
$itens, tendo, na primeira posição, o número 5, na segunda, a string “casa” e, na terceira, o valor
booleano true. Ainda, note que há várias formas pelas quais esse mesmo array pode ser criado.
FIGURA 2 Exemplos de criação de arrays
É possível utilizar a função array (exemplos 1) e então informar os valores ou especificar o valor para cada
chave (exemplos 2). Além disso, a partir da versão 5.4, pode-se utilizar os colchetes (exemplos 3). Os arrays
também podem ter suas chaves definidas automaticamente, a partir do 0 sempre é incrementado em 1 inteiro
(exemplos a), ou podemos definir a posição em que cada elemento deve ficar (exemplos b).
Veja que os arrays podem ter novas posições adicionadas ou removidas durante a execução da página.
1.5.1 Unidimensional
Outro diferencial do PHP é que as chaves podem ser representadas por números inteiros ou strings.
A Figura 3 exemplifica o uso da variável pessoa, que tem duas posições definidas pelas strings
“nome” e “idade”, uma posição inteira 2, e a última posição definida automaticamente. Nesse caso,
como a última chave inteira foi o número 2, a próxima posição válida é o número 3. O resultado pode
ser conferido na tela. Por fim, note que usamos a função print_r para exibir os dados do array. O
echo é usado para imprimir variáveis simples, enquanto utilizamos o print_r para arrays e objetos.
Como os arrays podem ter chaves e tamanhos definidos durante a execução, a tarefa de percorrê-
los não é tão fácil utilizando os laços de repetição já vistos. Para isso, vamos conhecer um quarto tipo
de laço de repetição: o foreach. Ele é exclusivo para percorrer arrays, nos quais podemos obter
apenas os valores ou a chave e o valor de cada posição. O laço percorre automaticamente todo o
array, repetindo o trecho de código pela quantidade de posições existentes no array. A Figura
4 apresenta um exemplo de como percorrer um array com nomes de países e exibi-los um em cada
linha.
a. Como o valor “Big Ben” pode ser acessado por meio desse array? ______________
b. Como o valor “Shakira” pode ser acessado por meio desse array? _______________
Exercício 67. Exibindo nomes das cidades conforme estado
Considere que você tem uma página chamada “cidades.php” que contém um array $cidades da seguinte
forma:
Essa página, quando recebe por GET a variável estado, exibirá apenas os nomes das cidades, em ordem
alfabética, que pertencem ao estado. Se não houver cidades com o estado informado, a página deverá exibir a
mensagem: “Não há cidades do estado ***”. Se a variável estado não for informada, a página deverá exibir
todas as cidades no seguinte formato: “Cidade – Sigla do Estado”, ordenada alfabeticamente por estado e
cidade.
Exercício 68. Presidentes do Brasil
Dado um array com nomes de presidentes do Brasil, exiba-os em ordem ascendente ou descendente. Para
isso, ao lado do cabeçalho da tabela, coloque dois links: um indicando para cima e outro para baixo. Ao clicar
“para cima” ou quando não houver indicação, os nomes deverão ser exibidos alfabeticamente; ao clicar para
baixo, a exibição será invertida.
Note que, ao incluir um arquivo, internamente é como se ocorresse uma cópia de tudo que existe
no arquivo incluído. Comandos, variáveis e saídas de tela são executados normalmente.
Observação: O include_once não permitirá a inclusão de um mesmo arquivo numa execução de
uma página PHP, entretanto, essa verificação ocorre a partir do nome do arquivo, não importando o
seu conteúdo.
Exercício 96. Processando o código: inclusão de arquivos
Considere os arquivos PHP criados na pasta “arquivos”:
Ao executar cada página PHP a seguir, escreva como ficará o resultado na tela do navegador.
Exercício 97. Processando o código: inclusão de arquivos
Considere os arquivos PHP criados na pasta “arquivos”:
Ao executar cada página PHP a seguir, escreva como ficará o resultado na tela do navegador.
Exercício 98. Processando o código: inclusão de arquivos (3)
Considere os arquivos PHP criados na pasta “arquivos”:
Ao executar cada página PHP a seguir, escreva como ficará o resultado na tela do navegador.
Observação: Toda vez que se for ler ou escrever em um arquivo texto, é necessário executar estas
três funções: fopen para abrir, fread ou fwrite para ler ou escrever, fclose para fechar.
Observação 2: Essas funções funcionam apenas com arquivos textos (ex: TXT, HTML, XML);
arquivos binários não são possíveis (ex: DOC, PDF, JPG).
Exercício 110. Editor de texto
Faça um formulário que receberá um arquivo TXT via upload. A página PHP que recebe o
formulário irá exibir outro formulário que conterá um campo textarea, cujo conteúdo será o texto
contido no arquivo TXT, e um botão submit. Ao clicar no botão, o texto alterado deverá ser salvo no
arquivo TXT.
Faça um formulário PHP que receberá o arquivo TXT via upload. Ao enviar o arquivo, a página
PHP irá salvar o arquivo TXT com o nome “operacoes.txt”, abrir o arquivo e processá-lo. Se a
operação for de crédito (C), o valor deverá ser somado ao saldo, se for débito (D), irá debitar. Como
resultado da página, deverá exibir o saldo anterior, as operações realizadas e o saldo atual.
Exercício 116. Orçamento
Suponha que uma pessoa dispõe de um orçamento X para a compra de guloseimas. Faça um
formulário que receberá o valor do orçamento e um arquivo TXT que contém diversas guloseimas.
Uma página PHP irá processar esse arquivo e determinará quais guloseimas poderão ser compradas (os
itens estão em ordem de prioridade). Considere a estrutura de dados: guloseima;quantidade;valorunitario
Exercício 30. Sorteio de dois números e exibição da soma da sequência entre eles
soma.php
binario.php
Exercício 43. Concatenação de nome e sobrenome
nomecompleto.html
nomecompleto.php
menornumero.php
Exercício 46. Triângulo
triangulo.html
triangulo.php
verificasenha.php
Exercício 49. Exibindo opções de porcentagem no campo select de um formulário
buscapalavra.php
Exercício 61. Capitanias hereditárias
aluno.php
professor.php
anteriores.php
Exercício 100. Percorrendo arquivos de uma pasta
baixo_peso.xls
keep_me_in_mind.mp3
novonome.jpg
pesquisa.docx
song.mp3
Exercício 101. Exibindo arquivos de uma pasta
upload.php
uploadtxt.php
uploadimagens.html
uploadimagens.php
salvausuario.php
Exercício 115. Conta bancária
saldo.html
saldo.php
Exercício 116. Orçamento
orcamento.html
orcamento.php
Exercício 117. Leitura de arquivos PDF
Não é possível abrir um arquido PDF com as funções de leitura e escrita de arquivos texto.
Exercício 118. Cadastro de festas
festa.html
insereFesta.php
Exercício 119. Consultas de festas
festasRealizadas.php
cidadesFestas.php
Exercício 120. Cadastro de CDs
cd.html
insereCd.php
Orientação a Objetos
A orientação a objetos (OO) é um dos paradigmas mais utilizados na programação. No PHP, é frequente o uso
de bibliotecas disponibilizadas por grupos de desenvolvedores que utilizam OO. Ela também será essencial
para a compreensão da arquitetura em 3 camadas (MVC), que veremos no final deste capítulo.
Originalmente, o PHP não foi criado para trabalhar com OO. Na versão 3, trazia poucos elementos, como:
classes, atributos e métodos. Entretanto, com o lançamento da versão 5, a maioria das características foi
implementada e desde então continua sendo adicionada a cada nova distribuição.
2.1 Classes e objetos
As classes são estruturas que permitem reunir características comuns a um elemento. A partir delas,
podem-se criar variáveis, ou melhor, instanciar objetos.
O PHP permite que várias classes sejam criadas em um mesmo arquivo, entretanto, a fim de
manter uma organização e similaridade a outras linguagens de programação, vamos colocar cada
classe em um arquivo separado. Isso tambem facilita a manutenção e o reaproveitamento de código.
Neste livro, os arquivos que contêm classes são identificados pelo nome “nomedaclasse.class.php”.
Na Figura 18, temos a implementação da classe Criança. A classe possui dois atributos: idade e
nome. Ambos são privados, ou seja, somente são acessíveis pela própria classe. Ainda há três
métodos: setNome (que recebe um parâmetro nome e altera o atributo nome), getNome (que retorna
o atributo nome) e fazAniversario (que incrementa em uma unidade o atributo idade). Os três
métodos são públicos, permitindo acessá-los por outros arquivos PHP. Note que, para acessar os
atributos da classe, é necessário referenciá-los com a palavra reservada $this, caso contrário, o PHP
entenderá que se trata de uma variável local.
Os métodos podem conter qualquer codificação PHP (operações, estruturas de controle, exibição
de informação, etc.). Também existe outro tipo de visibilidade de atributos e métodos, o protegido
(protected), que permite que somente a própria classe e as classes herdeiras acessem as informações.
Outra característica importante é a existência de dois métodos padrões para todas as classes:
__construct (construtor) e __destruct (destrutor). O __construct é chamado no momento da
instanciação do objeto, isto é, quando a palavra reservada new é utilizada. É possível que esse
método tenha sua implementação personalizada, podendo ser inicializada alguma variável ou
realizada qualquer operação. Caso a classe não implemente nada, o objeto será instanciado
normalmente. O mesmo ocorre com o __destruct. Ele é responsável pela finalização da classe, sendo
chamado automaticamente no encerramento da execução da página.
Na Figura 19, temos uma classe que utiliza os métodos __construct e __destruct. Vamos
implementar uma classe tempo que exibe uma mensagem em cada um, além de calcular a diferença
de tempo entre a instanciação e a destruição do objeto.
FIGURA 19 Classe Tempo com construtor e destrutor
Obs: O funcionamento dos métodos __construct e __destruct é semelhante aos demais, podendo
receber parâmetros e executar comandos PHP.
Exercício 123. Classes
Desenvolva a estrutura de código-fonte em PHP das classes a seguir. Não implemente os
métodos.
Na agregação, uma classe faz parte de outra classe. Por exemplo: para o carro funcionar (e estar
adequado às leis), ele precisa de 5 rodas (4 em uso e 1 estepe). Logo, há uma agregação entre a classe
carro e a classe roda (mais precisamente com multiplicidade indicando 5 rodas), conforme a Figura
21. A agregação é representada por uma linha contínua acompanhada de um losango aberto na
direção da classe que representa o todo.
FIGURA 21 Classes Carro, Motorista e Roda
A composição é considerada uma relação mais forte do que a agregação, pois, além de indicar que
uma classe necessita de outra, não há possibilidade de o objeto ser substituído. Por exemplo,
na Figura 22, cada carro tem um único chassi que, legalmente, não pode ser adulterado. Isso também
ocorre com livros e suas páginas, pois não faz sentido remover uma página de um livro e colocá-la
em outro. A composição tem a mesma representação da agregação, entretanto, o losango é pintado.
FIGURA 22 Classes Carro, Motorista, Roda e Chassi
Note que, quando ocorre uma associação, agregação ou composição, automaticamente é gerado
um atributo em uma das classes (ou em ambas). A navegabilidade, isto é, a direção indicando qual
classe contém o objeto da outra, depende do contexto em que o sistema se baseia. Além disso, é
importante indicar a multiplicidade, a fim de saber se será gerado um objeto ou um array de objetos
(e a quantidade de elementos).
Exercício 134. Classes e relacionamentos
Desenvolva o trecho / estrutura de código-fonte em PHP das classes a seguir:
2.9 Arquivos
Nesta seção, veremos como manipular arquivos por meio da orientação a objetos e da utilização das funções
vistas em 1.8.2, Gerenciamento de Arquivos, e 1.8.3, Manipulação de Arquivos Texto.
FIGURA 33 Classe BD
Exercício 171. Cadastro de livros
Conforme o formulário e a tabela a seguir, crie a página formLivro.html contendo o formulário HTML, e a
página insereLivro.php para inserir os dados do formulário na tabela Livro. Considere que o atributo idlivro, da
tabela Livro, tem a propriedade de autoincremento.
Exercício 172. Cadastro de computador
Conforme o formulário e a tabela a seguir, crie a página formComputador.html contendo o formulário
HTML, e a página insereComputador.php para inserir os dados do formulário na tabela Computador.
b) Livro.class.php
c) Carro.class.php
d) Conta.class.php
c) Aeroporto.class.php
d) Voo.class.php
Exercício 126. Calcule a área
a) Quadrado.class.php
b) Retangulo.class.php
c) Losango.class.php
d) Triangulo.class.php
Exercício 127. Retângulo
retangulo.php
Probabilidade.class.php
b) Time.class.php
Jogador.class.php
teste.php
Exercício 136. MP3
Musica.class.php
Mp3.class.php
Exercício 137. Livro
Autor.class.php
Editora.class.php
Livro.class.php
Exercício 138. SMS
Operadora.class.php
Proprietario.class.php
Telefone.class.php
Mp3.class.php
Exercício 137. Livro
Autor.class.php
Editora.class.php
Livro.class.php
Exercício 138. SMS
Operadora.class.php
Proprietario.class.php
Telefone.class.php
SMS.class.php
teste.php
Exercício 139. Cidade, estado e país
Cidade.class.php
Estado.class.php
Pais.class.php
Exercício 140. Gosto musical
Gosto.class.php
Exercício 141. Classes e relacionamentos
a) Pessoa.class.php
Cliente.class.php
b) Empregado.class.php
Tecnico.class.php
Analista.class.php
MegaSena.class.php
Quina.class.php
Exercício 143. Animais
Animal.class.php
Passaro.class.php
Mamifero.class.php
Pardal.class.php
Papagaio.class.php
Baleia.class.php
Cachorro.class.php
Leao.class.php
teste.php
Exercício 144. Oficina de veículos
Veiculo.class.php
Bicicleta.class.php
Automovel.class.php
Oficina.class.php
Yoshi.class.php
Jogo.class.php
Exercício 146. Estojo
Estojo.class.php
CoisaDeEscrever.class.php
Lapis.class.php
Lapiseira.class.php
CoisaDeEscrever.class.php
CoisaDeApagar.class.php
Borracha.class.php
Corretivo.class.php
index.php
Exercício 147. Roupa
Blusa.class.php
Saia.class.php
Vestido.class.php
AlunoSuperior.class.php
Internet.interface.php
Wifi.interface.php
TresG.interface.php
Ligacao.interface.php
Torpedo.interface.php
TelefoneFixo.class.php
TelefoneCelular.class.php
Smartphone.class.php
Tablet.class.php
Notebook.class.php
Exercício 150. Estabelecimento
Convidado.interface.php
Estabelecimento.class.php
Parque.class.php
Cinema.class.php
CasaNoturna.class.php
Masculino.interface.php
Jovem.interface.php
Pessoa.class.php
Mulher.class.php
Homem.class.php
Guria.class.php
Guri.class.php
Nado.interface.php
Mamifero.class.php
Oviparo.class.php
Gato.class.php
Cachorro.class.php
Baleia.class.php
Morcego.class.php
Pato.class.php
Pelicano.class.php
Exercício 154. Notícias por estado
Noticia.class.php
noticia.php
mudaidioma.php
cores.php
numeros.php
objetos.php
Exercício 156. Previsão do tempo
Cidade.class.php
tempo.php
mudatempo.php
index.php
processaForm.php
cliente.php
fornecedor.php
vendedor.php
erro.php
sair.php
Exercício 158. Caloria
Caloria.class.php
Comida.class.php
Exercicio.class.php
Futebol.class.php
Bolo.class.php
BoloDeChocolate.class.php
BoloDeLaranja.class.php
index.php
verifica.php
responda.php
Exercício 160. Brinquedolândia
Brinquedo.class.php
loja.php
carrinho.php
Exercício 161. Upload de arquivos (classe GerenciaArquivo)
Exercício 162. Leitura de diretório (classe GerenciaArquivo)
Exercício 163. Upload de arquivos JPG
UploadJPG.class.php
Exercício 164. Upload de arquivos com nomes sequenciais
UploadSequencia.class.php
upload.php
arquivo.php
listaProduto.php
resultado.php
insereComputador.php
formmusical.php
Exercício 174. País
Pais.class.php
ControlePais.class.php
listaPaises.php
ormPaises.php
Exercício 175. Videogame
Game.class.php
ControleGame.class.php
listaGame.php
cadastro.php
CAPÍTULO TRÊS
Tópicos Avançados
Este capítulo traz conceitos encontrados em vários sites, como organizar e agrupar os dados a serem exibidos, o
uso de bibliotecas para geração de arquivos, bem como realizar buscas.
3.1 Paginação e tabulação
A paginação é um recurso encontrado com frequência, que, em vez de mostrar todos os itens em
uma única página, pode determinar a exibição de apenas uma quantidade fixa. A partir daí são
geradas páginas que exibirão os itens subsequentes.
Já a tabulação ocorre quando há o agrupamento dos itens por uma determinada categoria. Por
exemplo, em uma lista de músicas, pode-se agrupá-las por estilos musicais. Ambos os recursos
(paginação e tabulação) também podem ser utilizados concomitantes.
Exercício 176. Filmes
Construa uma página PHP que exiba o nome de dez filmes por página em ordem alfabética. As
informações estão armazenadas em uma tabela.
3.2 Bibliotecas
O PHP oferece diversas bibliotecas que permitem realizar processamentos mais sofisticados. Algumas já são
instaladas automaticamente, enquanto outras devem ser liberadas pelo uso do arquivo de configuração PHP.ini.
Entretanto, ainda há diversas contribuições de desenvolvedores, basta buscar na internet. Além disso, as
bibliotecas geralmente são desenvolvidas utilizando o paradigma de orientação a objetos. Nas seções seguintes,
você conhecerá bibliotecas responsáveis pela geração de gráficos, arquivos PDF e ZIP, além do envio de e-
mails e da manipulação de arquivos XML.
3.2.1 Gráficos
A biblioteca JPGraph permite a construção de diversos estilos de gráficos. Para isso, basta baixar por
meio do site (http://jpgraph.net/), descompactar e colocá-la no diretório no qual estão as demais
páginas PHP. Para ilustrar como funciona, vamos criar o gráfico sobre a quantidade de acessos ao
longo de uma semana, a partir dos dados ilustrados na Figura 36.
FIGURA 36 Exemplo de gráfico de acessos
Para gerar um gráfico de linha, é necessário instanciar um objeto da classe Graph e outro da classe
LinePlote. A partir disso, é necessário configurar o gráfico, estabelecendo os pontos que devem ser
marcados e o leiaute a ser seguido. Terminado isso, basta adicionar o objeto de LinePlote ao Graph e
chamar o método stroke() para gerar o gráfico. O código-fonte é apresentado na Figura 37.
3.2.2 PDF
O PHP dispõe de diversas bibliotecas para geração de arquivos PDF. A HTML2PDF
(http://html2pdf.fr/en/default) permite que, a partir de um arquivo HTML, seja gerado o PDF. Logo, ela não
requer conhecimentos extras, como configuração de margens ou fontes. Para a instalação, basta colocar os
arquivos baixados no diretório onde estão os demais arquivos PHP.
A Figura 38 mostra o exemplo em que há a combinação de PHP com HTML para a geração do PDF. Para
isso, inicialmente é preciso solicitar a saída do buffer pelo uso da função ob_start(); a partir daí podem ser
executadas as saídas de tela. Nesse caso, utilizamos o laço for para a geração de números de 1 a 10. Após, é
instanciado um objeto de classe HTML2PDF e, então, gerado o PDF por meio do método Output.
Já na Figura 42, temos outro exemplo de como escrever em um arquivo XML já preenchido,
demonstrado por um cadastro de revistas. Novamente, será necessário abrir o arquivo XML e, então,
adicionar novos elementos no arquivo.
FIGURA 42 Exemplo de escrita de arquivo XML
Exercício 193. Exibindo as informações de um show
Considerando os dados contidos no arquivo show.xml, desenvolva a página show.php que exiba as
informações.
armazenadas em um arquivo copa.xml. Desenvolva a página grupos.php, que conterá um menu de tabulação
com os nomes dos grupos. Ao selecionar um deles, a página deverá exibir o nome dos países.
Exercício 195. Cadastro de produtos
Construa um formulário com os campos nome, preço e quantidade. Ao submetê-lo, a página PHP deverá
armazenar as informações no arquivo produto.xml.
3.3.1 Textual
É possível que a busca textual combine técnicas consultas em banco de dados e funções da
linguagem PHP. Nos bancos de dados, pode-se utilizar a consulta com o operador like, enquanto no
PHP é possível usar as funções substr_count(), str_replace(), levenshtein() e similar_text(). Como
exemplo da Figura 43, vamos observar um array com alguns nomes e verificar qual é o mais
parecido, usando a função levenshtein(). Quando essa função retorna o valor mais próximo a zero,
significa que as strings são mais semelhantes. Nesse caso, a string “José de Souza” tem como mais
próximo o nome “João de Souza”.
3.3.2 Categorização
A categorização é um tipo de busca que analisa as propriedades de um item, e não o conteúdo
textual. Logo, aqui se verifica qual é o item que contém características mais semelhantes ao buscado,
podendo ser atribuídos pesos para características mais idênticas. Para isso, é necessário identificar
quais propriedades serão utilizadas e, então, organizá-las de forma sequencial, atribuindo números
inteiros para cada valor possível. Suponha que faremos uma busca de pessoas, cujas propriedades
observadas serão cor de olho e cabelo, e idade; e a variável de identificação será o nome. A idade já é
registrada como um valor inteiro, logo, vamos categorizar as cores de olho e cabelo, conforme
a Figura 44.
compactararquivos.php
Exercício 190. Fale conosco
faleconosco.html
faleconosco.php
Exercício 191. Fotos
Exercício 192. E-mail para vários destinatários
Exercício 193. Exibindo as informações de um show
Exercício 194. Grupos da copa do mundo
Exercício 195. Cadastro de produtos