2. ESCOLA SECUNDÁRIA DE SANTO ANDRÉ
Curso e Turma:
Instalação e Manutenção de Sistemas Informáticos, EFA 4S
Disciplina:
Programação e Web
Nome do Trabalho:
“Linguagem PHP"
Nome do Aluno:
Tiago Lopes
Nome do Professor:
Guilherme Batista
Data do Trabalho:
17-12-2009
3. Índice
Introdução 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 Código PHP Pag.4
Separador de instruções Pag.4
Nomes de variáveis Pag.4
Comentários Pag.5
Os primeiros Scripts Pag.5 e 6
Formulários HTML Pag.6 e 7
Interagir com o Browser Pag.7
Acesso na Base de dados Pag.8
Ligação com o servidor Pag.8
Selecção na Base de dados Pag.9
Execução de queries SQL Pag.10
Query SELECT Pag.11 e 12
Conclusão Pag.13
Referências Pag.14
4. Introdução
O trabalho consiste numa pesquisa sobre a Linguagem PHP – uma linguagem de script
para a construção de Homepages dinâmicas, que é executada no servidor http.
PHP também tem como uma das características mais importantes o suporte a um
grande número de base de dados.
5. Linguagem PHP
PHP (um acrónimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de
programação interpretada, livre e muito utilizada para gerar o conteúdo dinâmico na
WEB, sendo ela interpretada via Browser.
Basicamente, qualquer coisa pode ser feita pelo programa CGI, pode também ser feita
com PHP, como colectar dados de um formulário, gerar páginas dinamicamente ou
enviar e receber cookies.
PHP também tem como uma das características mais importantes o suporte a um
grande número de base de dados, como por exemplo: dBase, Interbase, mSQL,
mySQL, Oracle, Sybase, PostgreSQL entre outros. Construir uma página baseada em
base de dados torna-se uma tarefa extremamente simples com PHP.
Além disso, PHP tem suporte a outros serviços através de protocolos como IMAP,
SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda é possível abrir sockets e interagir
com outros protocolos.
6. 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 página pessoal. Em 1997 foi
lançado 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
instalação e uso em servidores Web. Diversos módulos são criados no repositório de
extensões PECL (PHP Extension Community Library) e alguns desses módulos são
introduzidos como padrão em novas versões da linguagem. Pode ser, dependendo da
configuração do servidor, embarcada no código HTML. Existem versões do PHP
disponíveis 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 orientação dos objectos, que dava para alcançar alguns pacotes.
Tinha herança e dava aos desenvolvedores a possibilidade de implementar
propriedades e métodos funcionais.
PHP 4
Pouco depois, Zeev Suraski e Andi Gutmans, criaram o PHP 4, abandonando o PHP 3,
dando mais força à máquina da linguagem e maior número de recursos de orientação
a objectos. O problema que apresentou o PHP 4 foi a criação de cópias de objectos,
pois a linguagem ainda não trabalhava com apontadores ou handlers, como são as
linguagens Java , Small talk entre outras.
O problema foi resolvido na versão actual do PHP, a versão 5, que já trabalha com
handlers. Caso se copie um objecto, se copiarmos um apontador, se fizermos alguma
alteração na versão original do objecto, todas sofrem a alteração, o que não acontecia
na Linguagem PHP 4.
PHP 5
Em Junho de 2004 foi lançada a versão PHP 5, introduzindo um novo modelo de
orientação a objecto, incluindo a reformulação dos construtores e adição de
destrutores, visibilidade de acesso, abstracção 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 versão anterior era preciso muito
esforço para compreender à orientação a objectos e aos padrões de projectos (alguns
não eram possíveis), o PHP 5 veio para acabar essa deficiência. Ainda sofre nesse
sentido, contudo, por problemas devido a ser uma linguagem de ripagem fraca.
7. O código PHP
O código PHP fica introduzido no próprio HTML.
O interpretador identifica quando um código é 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 “abreviação” do
primeiro. Para utilizá-lo, é necessário habilitar a opção “short-tags” na configuração do
PHP. O último tipo serve para facilitar o uso por programadores acostumados à sintaxe
de ASP. Para utilizá-lo também é necessário habilitá-lo no PHP, através do arquivo de
configuração “php.ini”.
Separador de instruções
Entre cada instrução em PHP é preciso utilizar o ponto-e-vírgula, assim como em C,
Perl e outras linguagens mais conhecidas. Na última instrução do bloco de script não é
necessário o uso do ponto-e-vírgula, mas por questões estéticas recomenda-se
sempre.
Nomes de variáveis
A variável em PHP tem um nome composto pelo carácter $ e uma string, que deve
iniciar por uma letra ou um carácter “_”. PHP é case sensitive, ou seja, as variáveis
$vivas e $VIVAS são diferentes. Por isso é preciso ter muito cuidado ao definir os
nomes das variáveis. Evitar sempre os nomes em maiúsculas, como podemos ver mais
á frente, o PHP já possui algumas variáveis pré-definidas cujos nomes são formados
por letras maiúsculas.
8. Comentários
Comentários de uma linha:
Introduzir um comentário até ao final da linha ou até ao final do bloco de código PHP.
Pode ser designado pelo carácter “#” ou por duas barras (//).
Exemplo:
<? echo “teste”; #isto é um teste?>
<? echo “teste”; //este teste é similar ao anterior?>
Comentários de uma ou mais linhas:
Podemos introduzir os caracteres “/*” para o início do bloco e “*/” para o final do
comentário.
Exemplos:
<?
echo “teste”; /* Isto é um comentário com mais
de uma linha, mas não funciona correctamente ?>
*/
<?
echo “teste”; /* Isto é um comentário com mais
de uma linha que funciona correctamente
*/
?>
Os primeiros Scripts
Neste exemplo, criei um script com uma saída simples, que servirá para testar se a
instalação 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 endereço “http://localhost/primeiro.php3”.
Verificar o código da fonte da página exibida, temos o seguinte:
9. <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 disponível
para o utilizador apenas o resultado. Agora vamos escrever um script que produza
exactamente o mesmo resultado utilizando uma variável:
<html>
<head><title>Brincar no PHP</title></head>
<body>
<?php
$texto = "Primeiro Script";
echo $texto;
?>
</body>
</html>
Formulários HTML
Ao clicar no botão “Submit” um formulário HTML, as informações dos campos serão
enviadas ao servidor específico para que possa ser produzida uma resposta.
O PHP trata esses valores como variáveis, cujo nome é o nome do campo definido no
formulário.
O exemplo a seguir mostra isso, e mostra também como o código PHP pode ser
inserido em qualquer parte do código 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
formulário que contém um espaço para digitar o texto. Ao digitar um texto qualquer e
submeter o formulário, a resposta, é o mesmo arquivo PHP (indicado pela constante
$PATH_INFO, que retorna o nome do arquivo).
10. Isto acontece porque o código PHP testa o conteúdo da variável “$texto”. Inicialmente
é uma string vazia. Quando algum texto é digitado no formulário e submetido, o PHP
passa a tratá-lo como uma variável. Como no formulário o campo possui o nome
“texto”, a variável com seu conteúdo será “$texto”. Assim, no próximo teste o valor da
variável será diferente de uma string vazia, e o PHP imprime um texto antes do
formulário.
Interagir com o Browser
A Linguagem PHP também permite interagir com informações do browser
automaticamente.
Por exemplo, o script a seguir mostra informações 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 características de cada browser, como a versão, e no
caso do Communicator até o idioma (“en”). Com isso, se criar uma página com
recursos disponíveis no Internet Explorer, por exemplo, pode esconder o código dos
outros browsers, com um código 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 "Não use Internet Explorer";
}
?>
</body>
</html>
Neste exemplo, será apenas apresentado um texto informando se está a ser utilizado o
Microsoft Internet Explorer ou não, mas para outras funções poderia ser utilizado algo
parecido. É bom notar o aparecimento de mais uma função no código anterior: strpos
(string1,string2). Esta função atrasa a posição da primeira apresentação de string2 em
string1, a partir do zero, e não atrasa valor algum se não ocorrer. Assim, para testar se
a string “$HTTP_USER_AGENT” apresenta string “MSIE”, basta testar se os strpos
devolvem algum valor.
11. Acesso na Base de dados
Neste documento todos os exemplos referentes ao acesso na base de dados utilizarão
a gestão de base de dados MySQL. Para interagir com uma base de dados SQL existem
três comandos básicos que devem ser utilizados:
Faz a ligação com o servidor de base de dados;
Selecciona a base de dados a ser utilizada;
Executa uma “query” SQL.
Ligação com o servidor
A ligação com o servidor de base de dados mySQL em PHP é feita através do comando
“mysql_connect”, que tem a seguinte operação:
int mysql_connect(string /*host [:porta]*/ , string /*login*/ , string /*senha*/ );
Os parâmetros são bastante simples:
Endereço do servidor (host);
Nome do usuário (login);
A senha para a ligação.
A função atrasa um valor inteiro, que é o identificador da ligação estabelecida e deverá
ser armazenado numa variável para ser utilizado depois.
No exemplo, temos como servidor de base de dados a mesma máquina que funciona o
servidor http, como login o utilizador “root” e senha “phppwd”:
$ligacao = mysql_connect(“localhost”, “root”, “phppwd”);
Assim, se a ligação for bem sucedida o identificador da ligação fica armazenado na
variável “$ligação”.
Selecção na base de dados
Uma vez conectado, é preciso seleccionar a base de dados existente no servidor com o
qual queiramos trabalhar. Isso é feito através da função 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 parâmetro fornecido, seguido pelo identificador da
ligação. Recomenda-se sempre explicitar esse valor, para facilitar a legibilidade do
código. No exemplo, a base de dados a ser seleccionada possui o nome “ged”:
mysql_select_db(“ged”, $ligação);
Após a execução desse comando, qualquer consulta executada para aquela ligação
utilizará a base de dados seleccionada.
12. Execução de queries SQL
Após estabelecida a ligação e seleccionada a base de dados a ser utilizada, quase toda
a interacção com o servidor mySQL pode ser feita através 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 informação 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
função mysql_result() e outras. A string query não deve conter ponto-e-vírgula no final
do comando, e o identificador da ligação é 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 código 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);
13. Query SELECT
Ao executar uma query SQL SELECT através do comando mysql_query, o identificador
do resultado deve ser armazenado numa variável 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 função
mysql_query, linha específica, 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 utilização desta função é complicada, já que no caso de um
resultado com várias linhas é preciso controlar o número de linhas para tratá-las
(pode-se utilizar a função mysql_num_rows (int resultado), que retorna o número de
linhas de um resultado), e no caso de uma alteração no nome do campo é preciso
alterar também a maneira de “tratar”. Por isso é aconselhável que se use uma outra
função, como por exemplo mysql_fetch_row, que possui a seguinte sintaxe:
array mysql_fetch_row(int result);
A variável do resultado é o identificador da memória de resultados, obtido como
retorno da função mysql_query. O resultado produzido por esta função é de retirar a
primeira linha da memória de resultados, e se houver, é colocá-la num array. Assim
torna-se fácil tratar um resultado com várias linhas, e sem utilizar os nomes dos
campos na rotina do resultado:
14. $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 código 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
função mysql_data_seek, que tem por objectivo definir qual será a próxima linha da
memória 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 funções para o tratamento de resultados, que armazenam as linhas
em arrays e objectos, assim como outras funções para administrar a base de dados,
mas como este documento trata-se de uma introdução, inicialmente não apresentará
tópicos avançados.
15. Conclusão
A linguagem PHP é uma linguagem de programação de domínio específico, ou seja,
estende-se a um campo de actuação que é o WEB, embora tenha variáveis como o
PHP-GTK. O Objectivo principal é implementar soluções WEB rápidas, simples e
eficientes.