O PHP foi criado no outuno (lá nos EUA, aqui no Brasil seria primavera) de 1994 por Rasmus Lerdorf. As primeiras versões foram usadas na sua homepage para saber quem estava consultando o currículo online. A primeira versão que foi utilizada por outras pessoas foi disponibilizada em meados de 1995, era conhecido como Personal Home Page Tools (Ferramentas para Homepages Pessoais). Ela consistia num motor de interpretação bem simples, que entendia algumas macros especiais e alguns utilitários que eram de uso comum nas homepages de então. Um livro de visitas e um contador. Em meados de 1995, o interpretador foi reescrito e batizado de PHP/FI Version 2. O sufixo FI veio de outro pacote que Rasmus havia escrito que interpretava dados de formulário HTML. Ele combinou os scripts das Ferramentas para homepages pessoais com o Interpretador de Formulário e adicionou o suporte ao mySQL. O PHP/FI cresceu num ritmo incrível e pessoas começaram a adicionar código a ele.
■ O que é / O que significa PHP?
PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na World Wide Web, ou Internet. Apesar de ser uma linguagem de fácil aprendizagem e de utilização para pequenos scripts dinâmicos simples, o PHP é uma poderosa linguagem orientada a objetos.
O PHP é uma linguagem de script embebida em HTML. Isto significa que são executados uma série de comandos no próprio HTML (comandos embebidos em HTML) e que depois serão interpretados pelo PHP antes de serem enviados para o seu browser. O PHP é uma linguagem de script do lado do servidor, fazendo com que o cliente que requesitou a página não se aperceba do código necessário para gerar a página. Isto faz com que as páginas possam ser geradas dinâmicamente, podendo aceitar a bases de dados que depois fornecem a informação necessária para gerar uma dada página.
■ Uma resposta simples, mas o que ela significa?
Um exemplo:
<html>
<head>
<title>Exemplo</title>
</head>
<body>
<? php echo "Olá, eu sou um script PHP!"; ?>
</body>
</html>
Note como isto é diferente de um script CGI escrito em outras linguagens como Perl ou C - ao invés de se escrever um programa com vários comandos para produzir HTML, se escreve um script HTML com alguns comandos embutidos para fazer algo (neste caso, para produzir texto). O código PHP é separado por tags especiais de início e de fim que permitem mudanças, ora PHP, ora HTML.
O que torna PHP diferente de outras linguagens como Javascript é que o código é executado no servidor. Se você tivesse um script similar ao exemplo acima no seu servidor, o cliente receberia o resultado da execução do script, e não teria meios de descobrir qual o código subjacente. Você pode até configurar o seu web server para processar todas as suas páginas HTML com PHP, e não haveria como um usuário diferenciar as duas coisas.
■ O que o PHP pode fazer?
O PHP foi desenvolvido para ser utilizado com o Linux, Windows (ou Mac OS) em modo de servidor de páginas Web.
A princípio, o PHP pode fazer tudo o que qualquer CGI faz, como coletar dados de formulários, gerar páginas com conteúdo dinâmico, ou enviar e receber cookies. É aconselhado para os profissionais da Web que utilizam bases de dados para guardar a informação importante e depois a querem disponibilizar na Internet. No Brasil existem já alguns ISP que permitem a utilização de páginas com PHP scripts.
Disponível para diversas plataformas incluindo Linux, Windows NT e outros Unix'es, pode ser uma ótima alternativa ao ASP/IDC da Microsoft, ao ColdFusion, e até mesmo ao tradicional CGI/Perl/SSI, por ser um produto de licença GNU/GPL (leia-se gratuito e com código fonte aberto) de fácil utilização/programação.
Para além do acesso a bases de dados o PHP poderá também ser utilizado para criar scripts (como alternativa ao C ou ao Perl), tendo capacidades de gerar imagens e documentos automáticamente, bem como uma linguagem simples e bastante poderosa. Existem também funções de acesso a servidores de correio, funções para cálculo matemático, para cálculo de datas, funções de rede, etc.
O PHP funciona muito bem com o servidor http Apache e provavelmente a mais forte e significativa qualidade do PHP é a sua compatibilidade com uma grande variedade de banco de dados. Criar uma página web com acesso a banco de dados é incrivelmente simples. Os seguintes bancos de dados são alguns dos suportados:
- Adabas D;
- InterBase;
- Solid;
- Dbase;
- MSQL;
- Sybase;
- Empress;
- MySQL;
- Velocis;
- FilePro;
- Oracle;
- Unix dbm;
- Informix;
- PostgreSQL;
Pode ser usado para soluções de comércio eletrônico, webmail, processamento de formulários, cookies, entre outros recursos que necessitam de integração com o servidor Web.
O PHP também possui suporte para conversar com outros serviços usando protocolos como IMAP, SNMP, NNTP, POP3, ou até mesmo HTTP. Pode também abrir sockets de rede e interagir usando outros protocolos.
■ Instalação do PHP como módulo do Apache
O método de instalação preferido é o módulo de Apache. Isto faz com que o programa seja incluido no Apache como sendo uma extensão do mesmo. Assim existe uma ganho de memória uma vez que não é necessário lançar mais um processo para a geração de uma dada página.
■ Dados necessários à instalação
Deverá recolher os seguintes dados antes de começar a compilar o PHP:
- Bases de Dados - Saber quais os tipos de bases de dados aos quais vai aceder (mySQL, MSQL, ORACLE, etc).
- Funcionalidades Extra - O PHP permite utilizar uma série de outras funcionalidades nomeadamente a criação automática de imagens em formato gif, criação de documentos em formato PDF, etc. Deverá informar-se sobre todas estas funcionalidades e quais as que necessita para o seu site.
- Localização do Código Fonte - Saber quais as directorias onde está instalado o código fonte do Apache, mySQL, GD, etc.
Deverá também lêr o conteúdo dos arquivos INSTALL (com instruções de instalação) e CHANGES.
■ Configuração do PHP
Depois de estar na posse do arquivo comprimido com o código fonte do PHP deverá extrair os ficheiros para uma diretoria no seu disco (geralmente /usr/local/src).
Deverá posicionar-se nessa nova directoria e executar o comando ./configure --help | less. Isto deverá mostrar a lista de opções que o PHP tem aquando da sua compilação. Este comando serve para configurar a instalação de modo a saber quais os ficheiros necessários a compilar.
Exemplo: configuração com suporte para mySQL, ORACLE, GD e ODBC
./configure --with-mysql=/usr/local/src/mysql --with-gd=/usr/local/src/gd
--with-oracle=/u01/app/oracle/product/8.0.5 --with-iodbc=/usr/lib/iodbc --with-openlink=/usr/lib
--enable-track-vars
Neste exemplo, o mySQL tem os arquivos de instalação no caminho /usr/local/src/mysql, e assim por diante. O caminho --enable-track-vars serve para indicar ao PHP para utilizar variáveis com os conteúdos do POST, GET e Cookies.
■ Instalação do PHP
Depois de configurado bastará fazer make e o PHP será compilado. Se tudo correr bem e sem erros então poderemos fazer make install e o PHP será instalado numa directoria da instalação do Apache. A partir deste ponto bastará compilar e instalar o Apache para que o PHP esteja pronto a interpretar as suas páginas.
■ Comandos do PHP
Será descrito a seguir algumas definições de comandos, sem entrar em maiores detalhes, dada a complexibilidade e quantidade das informações e a limitada abrangência do trabalho.
■ Sintaxe da linguagem
As variáveis em PHP são um caso sensível, pois $a e $A são duas variáveis distintas. No entanto as funções nomeadas não tem essa distinção.
O PHP ignora espaços em branco entre códigos. Você pode usar espaço, tabs e novas linhas para formatar e identificar seu código para torná-lo mais legível.
■ Existem três tipos de comentário em PHP:
/* C style coments */
// C++ style coments
# Bourne shell style coments
C++ e Bourne Shell style comments podem ser inseridos em qualquer local do seu código. Tudo desde os caracteres dos comentários até o final da linha serão ignorados. O C style comment diz ao PHP para ignorar tudo desde o começo do comentário até o final dele. Isto significa que o comentário pode ter múltiplas linhas.
■ Variáveis
No PHP, todos os nomes de variáveis começam com o sinal de cifrão($). O $ é seguido por um caracter alfabético ou um underlines, e opcionalmente seguido por uma seqüência de caracteres alfanuméricos e underlines. Não há limite no comprimento da variável. Alguns exemplos:
$i
$primeiro_nome
$_TMP
No PHP, diferente de outras linguagens, você não precisa explicitamente declarar uma variável. O PHP automaticamente declara a variável assim que um valor é destinado a ela. As variáveis em PHP não são digitadas e pode-se destinar um valor de qualquer espécie a ela.
■ Tipos de dados
PHP possui três tipos de dados: integers, floating points numbers e strings. Adicionalmente, existem duas combinações de tipo de dados: arrays e objects.
Os integers são números inteiros, e o seu tamanho equivale o de um tipo long do C. Por exemplo:
$decimal = 16;
$hex = 0x10;
$octal = 020;
Floating point numbers representam valores decimais, e o seu tamanho equivale ao de um tipo double em C. Por exemplo:
$var=0.017;
$var=17.0E-3;
Strings são uma seqüência de caracteres . Pode ser delimitada por simples coma ou duplo coma. Por exemplo:
`PHP é legal`
"Olá, pessoal"
Arrays é um tipo de dado combinado que pode conter múltiplos valores de dados, indexados tanto numericamente ou com strings. Por exemplo:
$var[0]="Bom dia";
$var[1]="Pessoal";
Objects é um tipo de dado combiando que pode conter qualquer número ou variável e funções.
■ Expressões
Uma expressão é a base da construção da linguagem. Qualquer coisa com um valor pode ser considerado uma expressão. Exemplos são:
5
5+5
$a
$a==5
sqrt(9)
Combinando muitas destas expressões básicas você pode construir expressões maiores e mais complexas.
■ Operadores
Expressões são combinadas e manipuladas utilizando-se operadores.
!, ~, ++, --, @, *, /, %. Estes operadores e outros devem ser familiares se você tiver experiência em C, Java, ou Perl.
■ Controladores de Estrutura
Os Controladores de Estrutura em PHP são muito similares aos utilizados na linguagem C. São utilizados para controlar o fluxo lógico num script. Alguns exemplos de controladores são:
If; switch; while; do/while; for.
■ Funções
Uma função é uma seqüência nomeada de códigos que pode opcionalmente aceitar parâmetros e retornar valores. Uma chamada de função é uma expressão que tem um valor; este valor é o valor retornado pela função. Por exemplo:
Function soundcheck($a,$b,$c) {
Return "Testing, $a,$b,$c;
■ Exemplos
A melhor maneira de se entender o poder e as vantagens do PHP é examinando alguns exemplos reais dele em ação, então veremos alguns usos do PHP nesta seção:
■ Mostrando o Browser e o IP Address
Esta é uma simples página que imprime a spring do browser e o IP address do HTTP requerido. Crie um arquivo com o seguinte conteúdo no seu diretório, nomeie-o como exemplo.php, e carregue-o para o seu browser:
<HTML><HEAD><TITLE>PHP Example</TITLE></HEAD>
<BODY>
você está usando <? echo $HTTP_USER_AGENT ?><BR>
vindo de <? echo $REMOTE_ADDR ?>
</BODY></HTML>
Você deve ver algo como o seguinte na sua janela do browser:
você está usando Mozilla/x (compatible; MSIE x; Windows x) vindo de 207.164.141.23
■ Manipulação de forma inteligente
Nós vamos criar um código HTML que pergunta ao usuário para entrar com um nome e selecionar um ou mais interesses de uma caixa selecionada. Nós podemos fazer isto em dois arquivos, onde separamos o formulário atual do dado que dirige o código, mas ao invés disso, este exemplo nos mostra como fazer isto num único arquivo:
<HTML><HEAD><TITLE>Form Example</TITLE></HEAD>
<BODY>
<H1>Form Example</h2>
<?
function show_form($first="", $last="",
$interest=""){
$options = array("Sports", "Business",
"Travel", "Shopping",
"Computers");
if(empty($interest)) $interest=array(-1);
?>
<FORM ACTION="form.php" METHOD="POST">
First Name:
<INPUT TYPE=text NAME=first
VALUE="<?echo $first?>">
<BR>
Last Name:
<INPUT TYPE=text NAME=last
VALUE="<?echo $last?>">
<BR>
Interests:
<SELECT MULTIPLE NAME=interest[]>
<?
for($i=0, reset($interest);
$i<count($options); $i++){
echo "<OPTION";
if(current($interest)==$options[$i]) {
echo " SELECTED ";
next($interest);
}
echo "> $options[$i]\n";
}
?>
</SELECT><BR>
<INPUT TYPE=submit>
</FORM>
<? }
if(!isset($first)) {
show_form();
}
else {
if(empty($first) || empty($last) ||
count($interest) == 0) {
echo "You did not fill in all the ";
echo "fields, please try again<P>\n";
show_form($first,$last,$interests);
}
else {
echo "Thank you, $first $last, you ";
echo "selected ". join(" and ", $interest);
echo " as your interests.<P>\n";
}
}
?>
</BODY></HTML>
Existem algumas coisas que devemos estudar cuidadosamente neste exemplo. Primeiro, nós isolamos a mostragem da atual forma numa função PHP chamada show_form(). Esta função é inteligente na medida que pode pegar o valor padrão para cada um dos elementos do formulário como argumentos opicionais. Se o usuário não preencher todos os elementos do formulário, nós usamos este demonstrativo para reapresentar o formulário com qualquer valor que o usuário tenha entrado. Isto significa que o usuário só precisa preencher os campos que perdeu, o que é muito melhor que pedir a ele apertar o botão voltar ou digitar novamente todos os campos.
Note como o arquivo troca e destroca entre códigos PHP e HTML. Bem no meio da definição da função show_form(), nós mudamos para HTML para evitar ter muitos declarações echos ao invés de só um echo HTML normal. Depois quando precisamos de uma variável PHP nós trocamos para o código PHP temporariamente somente para imprimir a variável.
Nós demos ao elemento multiple choice<select> o nome interest[]. O [] no nome diz ao PHP que o dado vindo deste elemento do formulário deveria ser tratado como um auto indexador array. Isto significa que o PHP automaticamente dá a cada elemento o próximo índice seqüêncial, começando do 0 (assumindo que o array está vazio para começar).
A última coisa a ser notada é o modo como determinamos o que mostrar. Nós checamos se $first estava ajustado. Se não estivesse, nós sabemos que o usuário não enviou o formulário ainda, então chamamos show_form() sem aargumentos. Isto mostrará o formulário vazio. Se $first estiver ajustado, no entanto, nós checamos para ter certeza que os campos de texto de $first e $last não estão vazios e se o usuário escolheu pelo menos um interesse. - [Topo]
Bibliografia:
Lerdorf, Rasmus. PHP Pocket Reference. O´Reilly & Associates:1st edition January 2000. 120 pages.
Medinets, David. PHP4: Programming Browser- Based Applications. MacGraw- Hill:2000. 552 pages.
Fischer, Herbet. PHP Guia de Consulta Rápida. Novatec: janeiro de 2000.