You are on page 1of 16

ESCOLA SECUNDRIA DE SANTO ANDR

Curso e Turma:
Instalao e Manuteno de Sistemas Informticos, EFA 4S

Disciplina:
Programao e Web

Nome do Trabalho:
Linguagem PHP"

Nome do Aluno:
Tiago Lopes

Nome do Professor:
Guilherme Batista

Data do Trabalho:
17-12-2009

ndice

Introduo Pag.1
Linguagem PHP Pag.2
Como surgiu a Linguagem PHP Pag.3
PHP 3 Pag.3
PHP 4 Pag.3
PHP 5 Pag.3
O Cdigo PHP Pag.4
Separador de instrues Pag.4
Nomes de variveis Pag.4
Comentrios Pag.5
Os primeiros Scripts Pag.5 e 6
Formulrios HTML Pag.6 e 7
Interagir com o Browser Pag.7
Acesso na Base de dados Pag.8
Ligao com o servidor Pag.8
Seleco na Base de dados Pag.9
Execuo de queries SQL Pag.10
Query SELECT Pag.11 e 12
Concluso Pag.13
Referncias Pag.14

Introduo

O trabalho consiste numa pesquisa sobre a Linguagem PHP uma linguagem de script
para a construo de Homepages dinmicas, que executada no servidor http.
PHP tambm tem como uma das caractersticas mais importantes o suporte a um
grande nmero de base de dados.









Linguagem PHP

PHP (um acrnimo recursivo para "PHP: Hypertext Preprocessor") uma linguagem de
programao interpretada, livre e muito utilizada para gerar o contedo dinmico na
WEB, sendo ela interpretada via Browser.
Basicamente, qualquer coisa pode ser feita pelo programa CGI, pode tambm ser feita
com PHP, como colectar dados de um formulrio, gerar pginas dinamicamente ou
enviar e receber cookies.
PHP tambm tem como uma das caractersticas mais importantes o suporte a um
grande nmero de base de dados, como por exemplo: dBase, Interbase, mSQL,
mySQL, Oracle, Sybase, PostgreSQL entre outros. Construir uma pgina baseada em
base de dados torna-se uma tarefa extremamente simples com PHP.
Alm disso, PHP tem suporte a outros servios atravs de protocolos como IMAP,
SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda possvel abrir sockets e interagir
com outros protocolos.













Como surgiu a Linguagem PHP?
A Linguagem PHP surgiu por volta de 1994, com um pacotes de programas CGI criados
por Rasmus Lerdof, (Personal Home Page Tools), para substituir um conjunto de
scripts Perl, que usava no desenvolvimento de sua pgina pessoal. Em 1997 foi
lanado o novo pacotes da Linguagem PHP com o nome de PHP/FI, com a ferramenta
Forms Interpreter, um interpretador de comandos SQL.
Trata-se de uma linguagem extremamente modularizada, o que a torna ideal para
instalao e uso em servidores Web. Diversos mdulos so criados no repositrio de
extenses PECL (PHP Extension Community Library) e alguns desses mdulos so
introduzidos como padro em novas verses da linguagem. Pode ser, dependendo da
configurao do servidor, embarcada no cdigo HTML. Existem verses do PHP
disponveis para os seguintes sistemas operacionais: Windows, Linux, FreeBSD, Mac
OS, OS/2, AS/400, Novell Netware, RISC OS, AIX, IRIX e Solaris.
PHP 3
Mais tarde, Zeev Suraski desenvolveu o analisador do PHP 3 que contava com o
primeiro recurso de orientao dos objectos, que dava para alcanar alguns pacotes.
Tinha herana e dava aos desenvolvedores a possibilidade de implementar
propriedades e mtodos funcionais.
PHP 4
Pouco depois, Zeev Suraski e Andi Gutmans, criaram o PHP 4, abandonando o PHP 3,
dando mais fora mquina da linguagem e maior nmero de recursos de orientao
a objectos. O problema que apresentou o PHP 4 foi a criao de cpias de objectos,
pois a linguagem ainda no trabalhava com apontadores ou handlers, como so as
linguagens Java , Small talk entre outras.
O problema foi resolvido na verso actual do PHP, a verso 5, que j trabalha com
handlers. Caso se copie um objecto, se copiarmos um apontador, se fizermos alguma
alterao na verso original do objecto, todas sofrem a alterao, o que no acontecia
na Linguagem PHP 4.
PHP 5
Em Junho de 2004 foi lanada a verso PHP 5, introduzindo um novo modelo de
orientao a objecto, incluindo a reformulao dos construtores e adio de
destrutores, visibilidade de acesso, abstraco de objecto e interfaces de objectos.
O tratamento de objectos do PHP foi completamente reescrito, permitindo um melhor
desempenho e com mais vantagens. Enquanto na verso anterior era preciso muito
esforo para compreender orientao a objectos e aos padres de projectos (alguns
no eram possveis), o PHP 5 veio para acabar essa deficincia. Ainda sofre nesse
sentido, contudo, por problemas devido a ser uma linguagem de ripagem fraca.

O cdigo PHP
O cdigo PHP fica introduzido no prprio HTML.
O interpretador identifica quando um cdigo PHP pelas seguintes tags:

<?php
comandos
?>

<script language=php>
comandos
</script>

<?
comandos
?>

<%
comandos
%>


O tipo de tags mais utilizado o terceiro, que consiste em uma abreviao do
primeiro. Para utiliz-lo, necessrio habilitar a opo short-tags na configurao do
PHP. O ltimo tipo serve para facilitar o uso por programadores acostumados sintaxe
de ASP. Para utiliz-lo tambm necessrio habilit-lo no PHP, atravs do arquivo de
configurao php.ini.

Separador de instrues
Entre cada instruo em PHP preciso utilizar o ponto-e-vrgula, assim como em C,
Perl e outras linguagens mais conhecidas. Na ltima instruo do bloco de script no
necessrio o uso do ponto-e-vrgula, mas por questes estticas recomenda-se
sempre.

Nomes de variveis
A varivel em PHP tem um nome composto pelo carcter $ e uma string, que deve
iniciar por uma letra ou um carcter _. PHP case sensitive, ou seja, as variveis
$vivas e $VIVAS so diferentes. Por isso preciso ter muito cuidado ao definir os
nomes das variveis. Evitar sempre os nomes em maisculas, como podemos ver mais
frente, o PHP j possui algumas variveis pr-definidas cujos nomes so formados
por letras maisculas.


Comentrios

Comentrios de uma linha:

Introduzir um comentrio at ao final da linha ou at ao final do bloco de cdigo PHP.
Pode ser designado pelo carcter # ou por duas barras (//).

Exemplo:

<? echo teste; #isto um teste?>
<? echo teste; //este teste similar ao anterior?>

Comentrios de uma ou mais linhas:
Podemos introduzir os caracteres /* para o incio do bloco e */ para o final do
comentrio.

Exemplos:

<?
echo teste; /* Isto um comentrio com mais
de uma linha, mas no funciona correctamente ?>
*/
<?
echo teste; /* Isto um comentrio com mais
de uma linha que funciona correctamente
*/
?>

Os primeiros Scripts
Neste exemplo, criei um script com uma sada simples, que servir para testar se a
instalao foi feita correctamente:

<html>
<head><title>Brincar no PHP</title></head>
<body>
<?php
echo "Primeiro Script";
?>
</body>
</html>

Guarde o arquivo como primeiro.php3 na pasta de documentos do Apache (ou o Web
Server escolhido). Abra o browser e insira o endereo http://localhost/primeiro.php3.
Verificar o cdigo da fonte da pgina exibida, temos o seguinte:

<html>
<head><title>Brincar no PHP</title></head>
<body>
Primeiro Script
</body>
</html>

Isto mostra como o PHP funciona. O script executado no servidor, fica disponvel
para o utilizador apenas o resultado. Agora vamos escrever um script que produza
exactamente o mesmo resultado utilizando uma varivel:

<html>
<head><title>Brincar no PHP</title></head>
<body>
<?php
$texto = "Primeiro Script";
echo $texto;
?>
</body>
</html>

Formulrios HTML
Ao clicar no boto Submit um formulrio HTML, as informaes dos campos sero
enviadas ao servidor especfico para que possa ser produzida uma resposta.
O PHP trata esses valores como variveis, cujo nome o nome do campo definido no
formulrio.

O exemplo a seguir mostra isso, e mostra tambm como o cdigo PHP pode ser
inserido em qualquer parte do cdigo HTML:

<html>
<head><title>Brincar no PHP</title></head>
<body>
<?php
if ($texto != "")
echo "digitou \"$texto\"<br><br>";
?>
<form method=post action="<? echo $PATH_INFO; ?>">
<input type="text" name="texto" value="" size=10>
<br>
<input type="submit" name="sub" value="Enviar!">
</form>
</body>
</html>

Ao guardar o arquivo acima e carreg-lo no browser, o utilizador ver apenas um
formulrio que contm um espao para digitar o texto. Ao digitar um texto qualquer e
submeter o formulrio, a resposta, o mesmo arquivo PHP (indicado pela constante
$PATH_INFO, que retorna o nome do arquivo).
Isto acontece porque o cdigo PHP testa o contedo da varivel $texto. Inicialmente
uma string vazia. Quando algum texto digitado no formulrio e submetido, o PHP
passa a trat-lo como uma varivel. Como no formulrio o campo possui o nome
texto, a varivel com seu contedo ser $texto. Assim, no prximo teste o valor da
varivel ser diferente de uma string vazia, e o PHP imprime um texto antes do
formulrio.

Interagir com o Browser
A Linguagem PHP tambm permite interagir com informaes do browser
automaticamente.
Por exemplo, o script a seguir mostra informaes sobre o browser do utilizador.

<html>
<head><title>Brincar no PHP</title></head>
<body>
<? echo $HTTP_USER_AGENT; ?>
</body>
</html>

Observe que o resultado mostra caractersticas de cada browser, como a verso, e no
caso do Communicator at o idioma (en). Com isso, se criar uma pgina com
recursos disponveis no Internet Explorer, por exemplo, pode esconder o cdigo dos
outros browsers, com um cdigo semelhante no seguinte exemplo:

<html>
<head><title>Brincar no PHP</title></head>
<body>
<?
if (strpos($HTTP_USER_AGENT,"MSIE 5") != 0) {
echo "Use Internet Explorer";
} else {
echo "No use Internet Explorer";
}
?>
</body>
</html>

Neste exemplo, ser apenas apresentado um texto informando se est a ser utilizado o
Microsoft Internet Explorer ou no, mas para outras funes poderia ser utilizado algo
parecido. bom notar o aparecimento de mais uma funo no cdigo anterior: strpos
(string1,string2). Esta funo atrasa a posio da primeira apresentao de string2 em
string1, a partir do zero, e no atrasa valor algum se no ocorrer. Assim, para testar se
a string $HTTP_USER_AGENT apresenta string MSIE, basta testar se os strpos
devolvem algum valor.



Acesso na Base de dados
Neste documento todos os exemplos referentes ao acesso na base de dados utilizaro
a gesto de base de dados MySQL. Para interagir com uma base de dados SQL existem
trs comandos bsicos que devem ser utilizados:

Faz a ligao com o servidor de base de dados;
Selecciona a base de dados a ser utilizada;
Executa uma query SQL.


Ligao com o servidor

A ligao com o servidor de base de dados mySQL em PHP feita atravs do comando
mysql_connect, que tem a seguinte operao:

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

Os parmetros so bastante simples:

Endereo do servidor (host);
Nome do usurio (login);
A senha para a ligao.

A funo atrasa um valor inteiro, que o identificador da ligao estabelecida e dever
ser armazenado numa varivel para ser utilizado depois.
No exemplo, temos como servidor de base de dados a mesma mquina que funciona o
servidor http, como login o utilizador root e senha phppwd:

$ligacao = mysql_connect(localhost, root, phppwd);

Assim, se a ligao for bem sucedida o identificador da ligao fica armazenado na
varivel $ligao.

Seleco na base de dados

Uma vez conectado, preciso seleccionar a base de dados existente no servidor com o
qual queiramos trabalhar. Isso feito atravs da funo int mysql_select_db, que
possui a seguinte sintaxe:

int mysql_select_db(string /*nome_base*/, int /*ligacao*/ );

O valor de retorno 0 se o comando falhar, 1 em caso de sucesso. O nome da base
de dados a seleccionar o primeiro parmetro fornecido, seguido pelo identificador da
ligao. Recomenda-se sempre explicitar esse valor, para facilitar a legibilidade do
cdigo. No exemplo, a base de dados a ser seleccionada possui o nome ged:

mysql_select_db(ged, $ligao);
Aps a execuo desse comando, qualquer consulta executada para aquela ligao
utilizar a base de dados seleccionada.

Execuo de queries SQL

Aps estabelecida a ligao e seleccionada a base de dados a ser utilizada, quase toda
a interaco com o servidor mySQL pode ser feita atravs de consultas escritas em
SQL (Structured Query Language), com o comando mysql_query, que utiliza o
seguinte:

int mysql_query(string consulta, int [ligacao] );


O valor de retorno 0, se falhar 1 em caso de sucesso. Sucesso aqui significa que a
consulta est sintacticamente correcta e foi executada no servidor.
Nenhuma informao sobre o resultado retornada deste comando, ou at mesmo se
o resultado o esperado. No caso de a consulta ser um comando SELECT, o valor de
retorno um valor interno que identifica o resultado, que poder ser tratado com a
funo mysql_result() e outras. A string query no deve conter ponto-e-vrgula no final
do comando, e o identificador da ligao opcional. Vou criar uma tabela como
Exemplo:

$cria = CREATE TABLE exemplo (codigo INT AUTO_INCREMENT PRIMARY KEY, nome
CHAR(40), email CHAR(50));

mysql_query($cria, $ligacao);


Agora como ficou o cdigo completo para executar uma query SQL numa base de
dados mySQL, com um exemplo de uma tabela:

$conexao = mysql_connect(localhost, root, phppwd);
mysql_select_db(ged, $conexao);

$cria = CREATE TABLE exemplo (codigo INT AUTO_INCREMENT PRIMARY
KEY, nome CHAR(40), email CHAR(50));

$insere1 = INSERT INTO exemplo (nome,email) VALUES (Andre
Santos,santos@live.net);

$insere2 = INSERT INTO exemplo (nome,email) VALUES (Tiago
Lopes,lopes@hotmail.com);

$insere3 = INSERT INTO exemplo (nome,email) VALUES (Guilherme
Batista,g.b@gmail.pt);

$insere4 = INSERT INTO exemplo (nome,email) VALUES (Bill
Gattes,president@microsoft.com);

mysql_query($cria, $ligacao);
mysql_query($insere1, $ligacao);
mysql_query($insere2, $igacao);
mysql_query($insere3, $igacao);
mysql_query($insere4, $igacao);
Query SELECT
Ao executar uma query SQL SELECT atravs do comando mysql_query, o identificador
do resultado deve ser armazenado numa varivel que pode ser tratada de diversas
formas. Duas maneiras interessantes de fazer, usamos o comando mysql_result e o
comando mysql_fetch_row, respectivamente. O comando mysql_result tem a seguinte
forma:

int mysql_result(int resultado, int linha, mixed [campo]);

Onde o resultado o identificador do resultado, obtido com o retorno da funo
mysql_query, linha especfica, j que uma query SELECT pode retornar diversas tuplas,
e o campo o identificador do campo a ser exibido, sendo o tipo descrito como mixed
pela possibilidade de ser de diversos tipos (neste caso, inteiro ou string). Visualize-mos
um exemplo utilizando a tabela criada anteriormente:

$consulta = SELECT nome, email FROM exemplo WHERE email LIKE
santos;

$resultado = mysql_query($consulta, $ligacao);

printf("Nome: ", mysql_result($resultado,0,"nome"), <br>\n);
printf("e-mail: ", mysql_result($resultado,0,"email"),<br>);

Com o exemplo acima, o resultado :

Nome: Andr Santos<br>
E-mail: santos@live.net<br>

importante notar que a utilizao desta funo complicada, j que no caso de um
resultado com vrias linhas preciso controlar o nmero de linhas para trat-las
(pode-se utilizar a funo mysql_num_rows (int resultado), que retorna o nmero de
linhas de um resultado), e no caso de uma alterao no nome do campo preciso
alterar tambm a maneira de tratar. Por isso aconselhvel que se use uma outra
funo, como por exemplo mysql_fetch_row, que possui a seguinte sintaxe:

array mysql_fetch_row(int result);

A varivel do resultado o identificador da memria de resultados, obtido como
retorno da funo mysql_query. O resultado produzido por esta funo de retirar a
primeira linha da memria de resultados, e se houver, coloc-la num array. Assim
torna-se fcil tratar um resultado com vrias linhas, e sem utilizar os nomes dos
campos na rotina do resultado:









$consulta = SELECT nome, email FROM exemplo;

$resultado = mysql_query($consulta, $ligacao);

echo "<table border=1>\n";
echo "<tr><td>Nome</td><td>e-mail</tr>\n";
while ($linha = mysql_fetch_row($resultado)) {
printf("<tr><td>$linha[0]</td>);
printf("<td>$linha[1]</td></tr>);
}
echo "</table>\n";



O cdigo acima ir imprimir todos os registos da tabela, exemplo numa tabela HTML.
Se o programador desejar saltar alguma(s) linha(s) do resultado, poder utilizar a
funo mysql_data_seek, que tem por objectivo definir qual ser a prxima linha da
memria de resultados a ser imprimida. A sintaxe :

int mysql_data_seek(int resultado, int linha);

Se o resultado do identificador o resultado, a linha ou numero da linha. Retorna 0 em
caso de falha, um valor diferente de zero em caso de sucesso.
Existem diversas funes para o tratamento de resultados, que armazenam as linhas
em arrays e objectos, assim como outras funes para administrar a base de dados,
mas como este documento trata-se de uma introduo, inicialmente no apresentar
tpicos avanados.









Concluso
A linguagem PHP uma linguagem de programao de domnio especfico, ou seja,
estende-se a um campo de actuao que o WEB, embora tenha variveis como o
PHP-GTK. O Objectivo principal implementar solues WEB rpidas, simples e
eficientes.





















Referncias

Sites:
http://pt.wikipedia.org/wiki
http://www.apostilando.com

You might also like