PHP: CONCEITOS ESSENCIAIS PARA IMPLEMENTAÇÃO DE APLICAÇÕES WEB



Documentos relacionados
Internet e Programação Web

Introdução ao PHP. Prof. Késsia Marchi

APOSTILA PHP PARTE 1

PHP AULA1. Prof. Msc. Hélio Esperidião

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Programação Web Prof. Wladimir

OPERADORES E ESTRUTURAS DE CONTROLE

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

2 echo "PHP e outros.";

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

Treinamento em PHP. Aula 1. Ari Stopassola Junior

Conteúdo Programático de PHP

Java. Marcio de Carvalho Victorino

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger

Sumário. Capítulo 1 O que é o PHP? Capítulo 2 Instalação do PHP Capítulo 3 Noções básicas de programação... 25

Introdução à Linguagem

Curso de Aprendizado Industrial Desenvolvedor WEB

Componentes da linguagem C++

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Desenvolvendo Websites com PHP

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

CURSO DE PROGRAMAÇÃO EM JAVA

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

World Wide Web e Aplicações

Linguagem de Programação Introdução a Linguagem Java

PHP. Hypertext Pre-Processor

LINGUAGEM DE PROGRAMAÇÃO WEB

Programação WEB II. Introdução. Variáveis, Constantes, Operadores, Estruturas de Seleção e Repetição Arrays e Vetores. Thiago Miranda dos Santos Souza

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Aspectos de Segurança em Programação com Java

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Desenvolvendo Websites com PHP

Programação Básica em Arduino Aula 2

2.3. PHP Tipos de dados e operadores

Sumário. Capítulo 1 Revisão de PHP Capítulo 2 Melhorando o processamento de formulários... 46

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

Universidade da Beira Interior

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

e à Linguagem de Programação Python

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

JSP - ORIENTADO A OBJETOS

Algoritmos em Javascript

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁTICA

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Desenvolvendo para WEB

Desenvolvimento Web TCC Turma A-1

1 O PHP E A WORLD WIDE WEB

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Orientação a Objetos

Scriptlets e Formulários

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

O que é o JavaScript?

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Prof.: MARCIO HOLLWEG

Desenvolvimento de Aplicações Web

Linguagens de programação

Resumo da Matéria de Linguagem de Programação. Linguagem C

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

O sucesso da WWW. Atualização de Hiperdocumentos. Atualização de Hiperdocumentos. Cuidados. Exemplo. Passos. Motivos :

PROGRAMA DE DISCIPLINA

Características do PHP. Começando a programar

Java II. Sérgio Luiz Ruivace Cerqueira

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

A Linguagem Java. Alberto Costa Neto DComp - UFS

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 3

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Linguagens de Programação. Linguagens de Script. Carlos Bazilio

Programação WEB I Estruturas de controle e repetição

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

PROGRAMA DE DISCIPLINA

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Transcrição:

PHP: CONCEITOS ESSENCIAIS PARA IMPLEMENTAÇÃO DE APLICAÇÕES WEB Leonardo L. Alves A, Fabricio R. Bittencout B FUNCESI Fundação Comunitária de Ensino Superior de Itabira FATEC Faculdade Itabirana de Desenvolvimento das Ciências e Tecnologias Emails: leonardo@lacerda.eti.br, fabricio.roulin@funcesi.br Resumo Este trabalho objetiva proporcionar aos graduandos do curso de Sistemas de Informação o conhecimento necessário para otimizar pesquisas e aprendizado sobre o desenvolvimento de aplicações web, através da linguagem de programação PHP, a qual se caracteriza como a alternativa open-source dentre as linguagens interpretadas. São apresentados a estrutura de um programa PHP e os tipos de dados suportados pela linguagem e discutidos os principais operadores e estruturas de controle. É explicado ainda o funcionamento de um servidor www e como se pode programar suas respostas através do desenvolvimento de aplicações remotas embutidas em arquivos HTML. 1.Introdução Em conseqüência da expansão da Internet, interconexão entre diferentes ambientes de redes e reaproveitamento de máquinas e sistemas operacionais antigos, a arquitetura web tem adquirido grande relevância e criado demandas e desafios para o desenvolvimento de programas em Internet e intranets das corporações. As intranets, por sua vez, possuem conceitos idênticos aos da Internet, se utilizando de ferramentas e protocolos de comunicação similares. O seu escopo, porém, diferentemente do que ocorre na Internet, é permitir a troca de dados apenas entre computadores de uma mesma rede local, normalmente, mesmo que esteja ligada a rede pública de computadores, a Internet [6]. A camada multimídia da Internet é a WWW World Wide Web ou simplesmente Web, a qual é fornecida pelo protocolo HTTP Hypertext Transfer Protocol ou Protocolo de Transferência de Hipertexto e permite a troca de documentos, imagens e outros recursos web de forma transparente em relação ao computador-servidor [1]. Um recurso web é acessado por um programa-cliente, isto é, utilizado pelo usuário. O programa-cliente, normalmente conhecido como navegador ou browser (folheador), acessa os recursos através de um esquema de endereçamento uniforme conhecido como URL Uniform Resource Locator no formato protocolo://endereço_ip:porta/diretorios/arquivo [11]. A Bacharelando em Sistemas de Informação pela FATEC/Funcesi. B Mestrando pelo PPGEE - Programa de Pós Graduação em Engenharia Elétrica da PUC-MG, Professor da FATEC e FACCI na FUNCESI.

O servidor é responsável por servir os recursos web e o faz simplesmente enviando os arquivos disponíveis ao programa-cliente, logo que recebe uma requisição, assim como aponta a figura 1.1. Existem porém duas classes de aplicações web. A primeira delas chamada de client-side, ou local, sendo executada no computador-cliente, responsável pela requisição de um recurso web. Na figura 1.1 observa-se um processo client-side sendo executado sem qualquer conexão com sistemas computacionais externos. Figura 1.1: Programa client-side A segunda classe de aplicações web são executadas pelo servidor para o qual foi realizada uma requisição de recurso www. Nesse caso, o recurso é denominado recurso-dinâmico, e o servidor é totalmente responsável pelo processamento de dados e o redirecionamento da saída para o computador-cliente, o qual por sua vez, conforme demonstrado na figura 1.2, não tem acesso aos processos e dados de origem. Figura 1.2: Programa server-side Inúmeros ambientes computacionais foram criados para possibilitar o desenvolvimento de programas dessa segunda classe ou server-side, normalmente em linguagens de programação existentes e interpretadas no momento da requisição. Dentre os mais populares foram

consideradas o VB-Script e ASP.NET, linguagens de programação restritas à arquitetura Microsoft e normalmente implementadas em Visual Basic ou C# [9]; Java Servlets Pages (JSP), criada pela Sun, baseada na linguagem Java e independente de sistema operacional; e PHP, a qual é a única a contar com um interpretador open-source gratuito e com códigofonte aberto suportado por variados sistemas operacionais e servidores http. O PHP, objeto deste trabalho, foi um conjunto de aplicações desenvolvidas em linguagem Perl, por Rasmus Lerdof em 1995, com o simples propósito de criar interações entre usuários de Internet e sites nos quais era instalado. Somente após 1997, através da contribuição de outras pessoas ao projeto, PHP tornou-se uma linguagem de programação, chegando à versão 4 em 2000 com todos os atributos abordados nesse documento, e presente em mais de 20% dos domínios públicos na Internet [8]. O conhecimento prévio da linguagem C++ é desejável, mas o presente artigo deve servir como introdução à PHP mesmo àqueles que não saibam programar nessa linguagem. Este tutorial está organizado sobre a seguinte estrutura: no ítem 2 é exposto o que pode ser feito em PHP, os principais formatos de saída de dados e o suporte a protocolos de rede e extensões. No ítem 3 é apresentada a estrutura de um script e os recursos essenciais para a construção de aplicações web, como os tipos de dados usados, conversões de tipos, uso de variáveis, principais operadores e estruturas de controle, criação de funções e entrada e saída de dados. 2.O que pode ser feito em PHP Por ser uma linguagem interpretada de script no servidor www, criada exclusivamente para a Internet, PHP tem atributos que flexibilizam o desenvolvimento de páginas dinâmicas, com saída de dados em formatos como página de marcação HTML, animação em Flash, imagens, textos formatados em PDF e RTF, geradas dinamicamente através de informações recebidas do computador-cliente, armazenados em disco ou existentes em um banco-de-dados. Figura 2.1: Arquitetura PHP 4

Entre a aplicação e o programa-cliente, um navegador normalmente, além da tradicional troca de informações por meio de formulários HTML, há também o envio e recebimento de cookies C e o recebimento de parâmetros na própria URL em tempo de requisição [11]. Na figura 2.1 observamos a existência de cinco camadas em um servidor de scripts web PHP. A primeira, web server, é a responsável por servir recursos web reais diretamente do disco rígido ou virtuais após processamento de um script. A camada SAPI fornece a interface entre o interpretador e o servidor web. A terceira camada, denominada PHP Core, é o núcleo onde são processados os scripts, a qual, ligada à Zend Core, quarta camada, abre processos de extensões através de uma API, a quinta camada, de extensões externas ao PHP e até mesmo ao computador onde está instalado. A integração a sistemas gerenciadores de banco-de-dados (SGBD) é facilitada por rotinas existentes nas bibliotecas padrões do interpretador, executadas na camada Zend Core via API, com suporte a linguagem SQL e suporte especial aos SGBDs Oracle, MySQL, MiniSQL, MSQL, SQL Server, Interbase, entre outros. Adicionalmente, pela organização distribuída e multiplataforma da Internet, o suporte a outros protocolos também é oferecido através da quinta camada, tornando um programa em PHP capaz de se conectar a servidores de envio e recebimento de e-mails, de bate-papo, www, ftp e outros [8]. 3.Estrutura de um programa PHP Um script PHP é um conjunto de uma ou mais instruções seguidas por ; em um ou mais blocos delimitados por, indicando o início, e, o término do bloco. 3.1Um script PHP No exemplo 3.1.1 é apresentado um código PHP inserido em um arquivo HTML. A requisição deste arquivo, o qual obrigatoriamente deve possuir a extensão.php, faz com que o mesmo seja processado pelo interpretador PHP e resulte o recurso HTML do exemplo 3.1.2, enviado ao programa-cliente, como explicado no ítem 2. Exemplo 3.1.1: Script PHP embutido em código HTML (exemplo.php) <html> <body> <h1>conteúdo em HTML</h1> <p>1ª linha<br> 2ª linha<br> </p> <h1>conteúdo em HTML gerado pelo PHP</h1> <p> // Início do PHP // Comentário: C Pequeno arquivo texto armazenado no computador-cliente e acessado remotamente pela aplicação que o gravou.

// De 1 até 2 contados em $num faça o comando em seguida for ($num = 1; $num <= 2; $num++) echo $num. ª linha<br>\n ; /* Comentário: Imprime o valor de $num, o texto ª linha e uma quebra de linha */ // Fim do PHP </p> </body> </html> Os comentários presentes no script podem ter uma linha, quando iniciados por // ou tamanho intedeterminado quando iniciados por /* e finalizados por */. Ambos são úteis para a documentação do código e não são exibidos no recurso web após o processamento. Exemplo 3.1.2: Recurso HTML gerado após o arquivo exemplo.php ser processado Conteúdo em HTML 1ª linha 2ª linha Conteúdo em HTML gerado pelo PHP 1ª linha 2ª linha O resultado presente no exemplo 3.1.2 seria exibido no programa-cliente sem diferença entre o trecho integralmente escrito em HTML e o produto do script processado. 3.2Tipos de dados A linguagem suporta oito tipos primitivos de dados, compostos por quatro tipos básicos: boolean, para true (verdadeiro) ou false (falso); integer ou int, números inteiros; float, número com ponto-flutuante; string, para um ou mais caracteres. Dois tipos compostos:

array, vetor multidimensional abstrato, através do qual se pode construir listas, filas, pilhas, dicionários e outras construções similares; objeto, o qual sempre carrega a instância de um objeto. Dois tipos especiais: resource, existente a partir da versão 4 da linguagem, usada para referenciar recursos externos; null, o qual é atribuido a toda variável apagada, não carregada ou após uma atribuição da constante null. Um nono tipo mixed é usado em declarações de protótipos, determinando que mais de um tipo de retorno é esperado ou mais de um tipo de parâmetro pode ser usado. A tipagem de identificadores em PHP é realizada dinamicamente, sendo possível atribuir qualquer valor a variáveis previamente alocadas, sendo o interpretador PHP responsável pelas alterações, até mesmo em situações de overflow. Apenas valores do tipo string são identificados de forma diferenciada, devendo ser agrupados entre aspas ( ) ou apóstrofos ( ). Transformação de tipos Conceitualmente, há pelo menos duas formas de conversão de variáveis para tipos diferentes. A primeira delas, chamada coerção, é uma conversão de tipo implícita iniciada pelo interpretador [12]. A segunda, chamada cast, consiste em conversões explícitas de tipo solicitadas pelo programador. A coerção livre presente na PHP também dificulta a identificação de erros, mas favorece o trabalho de programação, sendo o programador dispensado de se preocupar com as conversões, conforme demonstrado no exemplo 3.2.1. Exemplo 3.2.1: Coerção livre $a = 2 + 15 palavras ; /* a variável $a terá o valor 17 */ O typecast, como demonstrado no exemplo 3.2.2 e igualmente ao da linguagem C++, é aplicado através da escrita do tipo antes de uma atribuição, forçando a conversão do tipo do valor atribuido.

Exemplo 3.2.2: Typecast $a = 45.3; /* variável $a recebe 45,3 */ $a = (int) $a; /* variável $a recebe 45 */ No exemplo 3.2.2, a variável $a é convertida para o tipo inteiro, mas para o mesmo trabalho, adicionalmente, há uma função chamada settype, a qual poderia ser usada como no exemplo 3.2.3. Exemplo 3.2.3: Função settype settype($a,integer); Identificadores As variáveis, as quais não precisam ser declaradas, são alocadas simplesmente através da atribuição de um valor ao identificador ainda não usado, sempre antecedido pelo símbolo $. As constantes, todavia, possuem um comportamento diferenciado, devendo ser declaradas pela função define, e sendo referenciadas sem o $, assim como no exemplo 3.2.4. Exemplo 3.2.4: Atribuição e uso de constante define( pi,3.1415); /* pi deve estar entre aspas, mas seu valor numérico não */ $circunferencia = 2 * pi * $raio; /* já como constante, pi é usado sem aspas e $ */ 3.3Operadores Em PHP há inúmeros operadores não tradicionais em outras linguagens de programação, como operadores de controle de erro, execução e de fusão de vetores. No presente tutorial serão tratados apenas os operadores com funções mais comuns. Aritméticos As operações de adição, subtração, divisão, multiplicação e módulo são executadas através dos símbolos +, -, /, * e %, respectivamente, como no exemplo 3.3.1. Exemplo 3.3.1: Operadores em expressões aritméticas

$c = $a + $b; /* soma */ $c = $a - $b; /* subtração */ $c = $a / $b; /* quociente real */ $c = $a * $b; /* produto */ $c = $a % $b; /* resto da divisão */ /* alteração de ordem de precedência através dos parênteses A expressão irá somar, multiplicar e encontrar o resto da divisão, nessa ordem. */ $c = ($a + $b) * $d % 4; Relacionais As comparações entre operandos quaisquer são idênticas às possíveis em C++, realizadas pelos operadores >, >=, ==,!=, <=, <; respectivamente maior que, maior ou igual a, igual a, diferente de, menor ou igual a, menor que. O retorno das expressões será sempre TRUE ou diferente de 0 quando verdadeiras, ou FALSE ou 0, quando falsas. Concatenação A cisão de cadeias de caracteres se dá pelo operador. (ponto) ou.= (ponto e igual), como no exemplo 3.3.2. Exemplo 3.3.2: Concatenação de strings $c = Linguagem. PHP ; /* retorna Linguagem PHP */ $c = Funcesi ; /* Atribui Funcesi à variável $c */ $c.= /Itabira ; /* retorna Funcesi/Itabira e atribui à variável $c */ Atribuição A atribuição é realizada a identificadores com o operador =, podendo ocorrer em qualquer ponto do programa ou mesmo dentro de outras estruturas. Exemplo 3.3.3: Atribuição simples

$c = 4; /* atribui o inteiro 4 */ $c = 2.5; /* atribui o real 2,5 */ $c = texto ; /* atribui a string texto */ Em função de as variáveis serem tipadas dinamicamente, todas as atribuições do exemplo 3.3.3 são possíveis, para o mesmo identificador. Outros operadores de atribuição são +=, -=, *=, /=, %=,.=, para atribuir recursivamente, ou seja, atribuir ao identificador esquerdo o seu conteúdo atual somando com o próximo, subtraindo, multiplicando, dividindo por, obtendo o resto da divisão por, ou concatenando, segundo o operador que anteceder o símbolo =. Algumas dessas operações são mostradas no exemplo 3.3.4. Exemplo 3.3.4: Atribuições combinadas $cont += 1; // Corresponde a $cont = $cont + 1 $multiplo *= 3; // Corresponde a $multiplo = $multiplo * 3 Lógicos Os operadores lógicos são and, &&, or,, xor e!, exibidos no exemplo 3.3.5. Exemplo 3.3.5: Operadores lógicos $a and $b /* verdadeiro se ambos, $a e $b, são verdadeiros */ $a && $b /* idem */ $a or $b /* verdadeiro se $a ou $b é verdadeiro, ou se ambos são verdadeiros */ $a $b /* idem */ $a xor $b /* verdadeiro se $a ou $b é verdadeiro, mas não os dois são verdadeiros */!$a /* verdadeiro quando $a não for verdadeiro */ Incremento e decremento Os populares operadores de incremento e decremento da linguagem C, ++ e --, também foram herdados pelo PHP, com a mesma sintaxe, resultando em um incremento de 1 ou decremento de 1, com ordem de execução priorizada quando pré-fixados. O exemplo 3.3.6 apresenta demonstrações.

Exemplo 3.3.6: Incremento e decremento 0 $a = $cont++; /* $a recebe o valor de $cont, e $cont é incrementada */ $a = ++$cont; /* $cont é incrementada e então $a recebe o novo valor de $cont */ $b = $tarefa--; /* $b recebe o valor de $tarefa, e $tarefa é decrementada */ $b = --$tarefa; /* $tarefa é decrementada e então $b recebe o novo valor de $tarefa */ 3.4Estruturas de controle As estruturas de controle foram mantidas inalteradas em relação às do C/C++, as quais respeitam todas as regras e exceções do padrão ANSI C. Seleção Duas estruturas de seleção são oferecidas. O tradicional if e a estrutura switch-case. Exemplo 3.4.1: Estrutura condicional if if ($i == 0) print 'Minha variável é igual a zero'; elseif ($i == 1) print 'Minha variável é igual a um'; elseif ($i == 2) print 'Minha variável é igual a dois'; else { print 'Minha variável é diferente de '; /* bloco demarcado */ print '0, 1 e 2'; /* por chaves { e } */ } Apresentada no exemplo 3.4.1, a estrutura if sempre avalia sua expressão ($i == 1, por exemplo) como booleano. Em caso de verdadeiro, as instruções seguintes são executadas; caso falso, instrução elseif ou else são procuradas. É interessante notar, entretanto, que falso em PHP pode ser o booleano false, o inteiro 0, o real 0.0, uma string vazia ou 0, um null, uma variável indefinida ou um array ou objeto sem elementos. Qualquer valor diferente dos citados, inclusive o booleano true, equivale ao estado verdadeiro [8]. A estrutura switch-case, com a mesma função, possui sintaxe como no exemplo 3.4.2. Exemplo 3.4.2: Estrutura condicional switch

switch ($i) { case 0: print 'Minha variável é igual a zero'; break; case 1: print 'Minha variável é igual a um'; break; case 2: print 'Minha variável é igual a dois'; break; else: print 'Minha variável é diferente de '; print '0, 1 e 2'; break; /* break força o término do bloco switch */ } 1 Repetição Há quatro estruturas de repetição mais populares em PHP: while, do-while, for e foreach. O while é um laço de repetição lógico, o qual é executado enquanto sua condição é verdadeira, como é demonstrado no exemplo 3.4.3. Exemplo 3.4.3: Exemplo de uma repetição while $i = 1; /* $i é inicializado com valor 1 */ while ($i <=10) /* enquanto $i for menor ou igual a 10 faça */ { print Linha $i++\n ; /* imprima o valor de $i. Incremente em seguida. */ echo <br> ; } /* imprime uma quebra de linha em HTML */ O do-while, diferentemente da estrutura while, executa pelo menos uma iteração, obrigatoriamente, realizando o teste pela primeira vez ao fim da mesma, e repetindo enquanto a condição for verdadeira. O exemplo 3.4.4 demonstra sua construção. Exemplo 3.4.4: Exemplo de uma repetição do... while $i = 0; // $i recebe o valor zero do { // inicia o bloco do {... } while print Linha ++$i\n ; // incrementa $i e imprime o texto echo <br> ; // imprime uma quebra de linha em HTML } while ($i < 10); // faz outra iteração enquanto for verdadeiro O for, por sua vez, possui três parâmetros opcionais: um de inicialização, outro para a condição e o terceiro para execução antes de cada nova iteração. O código é ilustrado no exemplo 3.4.5.

Exemplo 3.4.5: Exemplo de uma repetição for 2 /* $i = 1 é executada no início; $i <= 10 é avaliada no início de cada iteração; $i++ é avaliada ao fim de cada iteração */ for ($i = 1; $i <= 10; $i++) { print Linha $i\n ; /* imprime o texto Linha, a variável $i e quebra a linha */ echo <br> ; /* imprime quebra de linha em HTML */ } A repetição foreach, finalmente, é usada exclusivamente para o trabalho com vetores, objetivando copiar chaves e valores de uma posição do vetor, até o seu fim, para outra variável. Este recurso é útil particularmente em PHP quando se tem um vetor de dimensão variável, suportado apenas a partir de sua versão 4 e demonstrado no exemplo 3.4.6. Exemplo 3.4.6: Exemplo de uma repetição foreach $vetor = array (1,7,18,44,99); /* cria e carrega $vetor */ /* copia o primeiro valor de $vetor para $parte */ foreach ($vetor as $parte) { echo Valor: $parte \n ; /* imprime $parte e retorna até o fim de $vetor*/ } 3.5Funções e procedimentos Por recursos na web serem arquivos isolados, muitas vezes é possível criar programas ou páginas dinâmicas simples, isto é, sem o uso de funções ou procedimentos. Entretanto, o suporte a funções é muito útil na formação de bibliotecas e para a passagem segura de parâmetros dentro de um recurso. Funções são declaradas como no exemplo 3.5.1. Exemplo 3.5.1: Declaração de função function nomedafunc($aluno, $disciplina = 'Compiladores') { echo "O aluno ". $aluno. " estuda ". $disciplina; return "valor de retorno"; } Com suporte a parâmetros padronizados, como é o caso do parâmetro $disciplina, ilustrado em 3.5.1, sempre ao final, e dispensa de declaração do tipo do retorno, dada a coerção livre presente na linguagem, seu funcionamento é idêntico ao de funções ou

procedimentos em outras linguagens e o retorno pode ocorrer dentro de estruturas, saídas, parâmetros de outras funções e mesmo em expressões aritméticas, por exemplo. Ainda, por sua ortogonalidade superior à de linguagens de programação tradicionais, qualquer tipo de dado pode ser retornado de uma função, inclusive vetores e registros. 3 3.6Entrada e saída A saída, possível através das funções echo e print, assim como no exemplo 3.1.1, é redirecionada para o recurso virtual acessado pelo programa-cliente, podendo ser som, imagem, animação, filme, texto ou outro formato. A entrada, seja através de formulário, presente em URL ou até mesmo em um cookie, é realizada de maneira transparente pelo interpretador PHP, que a converte em uma variável global, a qual pode ser alterada sem qualquer prejuízo de tempo, nem a possibilidade de causar danos ao programa responsável pela requisição ou envio de dados. A independência entre os mecanismos de entrada e o programa criam condições satisfatórias para um rápido desenvolvimento, causando entretanto possíveis problemas de segurança e privacidade dos dados trocados, o que, aliado à ortogonalidade da linguagem e a coerção livre, garante uma redução considerável no nível de segurança, possibilitando a execução de instruções prejudiciais e causando erros na transferência de dados de tipo incorreto a servidores de banco-de-dados e outras aplicações de mais baixo nível. 4.Conclusão Pela extensão da linguagem de programação PHP, variantes de versão, diferenciais entre suas estruturas e as de outras linguagens de programação populares, é tarefa complexa concluir um estudo sobre suas características. É conclusivo, porém, que o sucesso do PHP se deve a facilidade de escrita, simplificação da implementação do código, alto grau de ortogonalidade, livre coerção o que dispensa o programador dos constantes tratamentos de entradas e saídas e conversão de tipos (texto para numérico, e vice-versa), muito comuns no ambiente web, integração com linguagens de programação e ou formatação, como o próprio HTML, e especialmente o suporte às mídias e aos serviços mais populares na Internet. Os aspectos custo, minimizado pela distribuição gratuita dos pacotes, código-livre e portabilidade entre as principais arquiteturas de servidores web usadas no mundo, influenciam diretamente em sua escolha por desenvolvedores e administradores de páginas. Todavia, preocupante em toda aplicação onde se obtêm informações digitadas diretamente por usuários on-line, o controle das entradas, quebras em programas e abertura a invasões é possível com facilidade quando o desenvolvedor atribui baixa relevância aos testes e avaliações da segurança.

Por ser uma linguagem de programação exclusivamente interpretada, perde em desempenho para as aplicações CGI compiladas em C, as mais populares, porém garantindo maior facilidade de atualização e reutilização de código entre os módulos ou arquivos do programa, quando em processo de execução/interpretação. Mesmo enfretando a concorrência de novas tecnologias, sua popularidade é garantida por desenvolvedores de extensões, bibliotecas e aplicações open-source para o PHP. Além disso, por sua inclusão em pacotes de distribuição do sistema operacional Linux e servidor web Apache, ambos muito populares na Internet e nos quais o PHP possui melhor desempenho e menor dependência de sistemas adicionais, há resistência em adotar outras ferramentas similares e com menor alcance. A participação do interpretador PHP no desenvolvimento de aplicações tem se mostrado vantajosa em inúmeros aspectos, a tornando ferramenta essencial para qualquer servidor http e eficaz para implementação de aplicações web. 4 5.Referências bibliográficas [1]AMOR, Daniel. A revolução do e-business: vivendo e aprendendo em um mundo interconectado. São Paulo: Makron Books, 2000. 606 p. [2]BAKKEN, Stig Sæther. Introduction to PHP. Internet < www. zend. com / zend / art / intro. php>. 17/Abr/2000. [3]BARRETO, Maurício V.S.; et al. Aplicações web com PHP. Internet: <www. vivas. com. br>, Jun/2000. 104 p. [4]BRUFAU, Marc; CASALS, Xavier; MAS, David. Conceptes avançats de sistemes operatius. Distribució d aplicacions mitjançant web. (apunts de l assignatura en format transparència). Departament d Arquitectura de Computadors. 2001. [5]COX JÚNIOR, Fred. Programando para web com PHP/MySQL. Mar/2001. 2. ed. 72 p. [6]GRALLA, Preston. Como funcionam as intranets. Editora Quark, São Paulo, 1996. 206 p. [7]HALL, Marty. Core Servlets and JavaServer Pages. Sun Microsystems Press. Internet: <javaboutique. internet. com / tutorials / JSP>. [8]LERDOF, Rasmus et al. PHP Manual. Internet: <www. php. net / docs. php>, 08/Out/2002. [9]PAULI, Guinther de Bitencourt. ASP.NET com Delphi: criação de web services no Delphi for.net Preview. Revista Clube Delphi. Ed. 37. Ano IV.

[10]REILLY, George V. ASP best practices. Microsoft Corporation. Internet: <support. microsoft. com / support / activeserver / AspBestPractices. ppt>, 06/03/2003. [11]ROSA, César Augusto Salabert. Internet: história, conceitos e serviços. São Paulo: Érica, 1998. [12]SEBESTA, Robert W. Conceitos de Linguagens de Programação. 4. ed. Porto Alegre: Bookman, 2000. 624 p. 5