PHP*
e suas aplicações na ciência
28 de Maio
IF/UFRGS
Pra que serve PHP?
Para criar websites
Mas eu já sei HTML*...
HTML é estático
Exemplo 1: <html> <head> </head> <body> <h1> Hello world! </h1> </body> </html> Exemplo 2: <html> <body> <?php $word1 = ”Hello”; $word2 = ” world\n”; $string = $word1.$word2; echo "<h1>”.$string.”</h1>"; ?> </body> </html>
Exemplo 1: <html> <head> </head> <body> <h1> Hello world! </h1> </body> </html> Exemplo 2: <html> <body> <?php $word1 = ”Hello”; $word2 = ” world\n”; $string = $word1.$word2; echo "<h1>”.$string.”</h1>"; ?> </body> </html>
Exemplo 1: <html> <head> </head> <body> <h1> Hello world! </h1> </body> </html> Exemplo 2: <html> <body> <?php $word1 = ”Hello”; $word2 = ” world\n”; $string = $word1.$word2; echo "<h1>”.$string.”</h1>"; ?> </body> </html>
Exemplo 1: <html> <head> </head> <body> <h1> Hello world! </h1> </body> </html> Exemplo 2: <html> <body> <?php $word1 = ”Hello”; $word2 = ” world\n”; $string = $word1.$word2; echo "<h1>”.$string.”</h1>"; ?> </body> </html>
Exemplo 3: <html> <head> </head> <body> <? // Comentario: nao tente isso em casa for($i=100; $i>0; $i) { echo $i." garrafas de cerveja no muro, bebo uma, jogo no lixo, ".($i1)." garrafas no muro...\n <br>"; } ?> </body> </html>
Alguns conceitos básicos
Client side
HTML
JavaScript
CSS
Server side
PHP
ASP
CGI
Alguns conceitos básicos
Client side
HTML
JavaScript
CSS
Server side
PHP
ASP
CGI
Exemplo 4: hi.php <?php $arr[] = 'Hallo Welt'; $arr[] = 'Hola, mundo'; $arr[] = 'Dia duit domhan'; $arr[] = 'Oi, mundo'; $arr[] = 'Halló heimur'; $arr[] = 'Bonjour tout le monde'; srand ((double) microtime() * 1000000); $randomarr = rand(0,count($arr)1); echo $arr[$randomarr]; ?> exemplo4.php <? include('hi.php'); ?>
Algumas vantagens do PHP
Free software
Comunidade gigantesca
Presente em praticamente
qualquer servidor
moderno
Documentação e mais
documentação
Aplicações
Divulgação do seu trabalho
Facilitar o acesso a grandes
conjuntos de dados
Interação com software sem a
liberação do código fonte
Como ponte entre softwares escritos
em outras linguagens e a WWW
Detalhes da linguagem
Sintaxe quase idêntica ao Perl
Tipagem livre
Orientável a objetos
Sensível ao caso
Variáveis podem ser usadas sem
inicializalas
Operador
Descrição
Exemplo
Resultado
+
Adição
$x = 1;
$x+2;
3
Subração
$x = 3;
$x2;
1
*
Multiplicação
3*2
6
/
Divisão
6/2
3
++
Incremento
$x=1;
$x++;
2
=
Atribuição
$x=1; $y=$x;
1
==
É igual?
$x == $y
True / False
!=
É diferente?
$x != $y
True / False
>
É maior?
$x > $y
True / False
&&
Logical and
($x<2 && $y>10)
True / False
||
Logical or
($x<2 || $y>10)
True / False
!
Logical is not !($x<2 && $y>10) True / False
Formulários
Formulário <html> <body> <form action="form.php" method="post"> Nome: <input type="text" name="nome" /><br> Idade: <input type="text" name="idade" /><br> <input value="Submit" type="submit" /> </form> </body> </html>Formulários
Formulário <html> <body> <form action="form.php" method="post"> Nome: <input type="text" name="nome" /><br> Idade: <input type="text" name="idade" /><br> <input value="Submit" type="submit" /> </form> </body> </html>Formulários
Formulário <html> <body> <form action="form.php" method="post"> Nome: <input type="text" name="nome" /><br> Idade: <input type="text" name="idade" /><br> <input value="Submit" type="submit" /> </form> </body> </html>Formulários
Formulário <html> <body> <form action="form.php" method="post"> Nome: <input type="text" name="nome" /><br> Idade: <input type="text" name="idade" /><br> <input value="Submit" type="submit" /> </form> </body> </html>Formulários
form.php
<html>
<body>
<?
$n = $_POST["nome"];
$i = $_POST["idade"];
?>
Seu nome e <? echo $n; ?>.<br />
Tu tem <? echo $i; ?> anos de idade.
</body>
Formulários
A diferença entre os métodos POST e GET
POST
Informações não são reveladas ao
usuário.
GET
Informações agregadas ao URL
Qualquer um pode ver
Exemplo:
http://www6.ufrgs.br/portaldenoticias/noticias.php?id=2674Formulários
A diferença entre os métodos POST e GET
POST
Informações não são reveladas ao
usuário.
GET
Informações agregadas ao URL
Qualquer um pode ver
Exemplo:
Usando GET para facilitar sua vida
Isso nunca muda, mas o que vem abaixo sim.<br>
Menu, header, etc, etc...<br><br>
Links<br>
<a href='./'>Home</a><br>
<a href='?page=teste.php'>Teste 1</a> <br>
<a href='?page=teste2.php'>Teste 2</a>
<?
$page = $_GET['page'];
if (!$page) {
$page = "main.php";
}
include($page);
Funções
Nome
Descrição
round(float,precision) Arredondamento de ponto flutuante preg_split(/regex/,$line) Sepera uma string de acordo com uma REGEX file() Lê linhas de um arquivo ASCII para um array array_slice($arr,n) Corta um array por # linhas date(format) Retorna a data do servidor strlen(str) Retorna tamanho de uma string php_info() Retorna informações sobre configuração do servidor sin(),cos(),tan(), ... Funções matemáticas básicas Para mais funções visite: http://www.php.netFunções
#!/usr/bin/php ou php script.php
aptget install php5cli
Para executar um processo do sistema
use as funções:
exec()
system()
Misc
Cookies
Sessões
Upload de arquivos
Envio de emails
Uma introdução a banco de dados
O
PHP fornece uma interface Cliente
WebServer com o banco de dados
SQL* é um tipo linguagem de banco de dados
(e.g. SDSS, Millenium Simulation, DES)
MySQL é um dos bancos de dados mais
populares por ai, usado para conter
quantidades enormes de informação.
Existem outros:
Postgres
Oracle
SQLite3
Conectandose
<?php
$con = mysql_connect("localhost","user","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
?>
Criando um DB (my_db)
<?
if (mysql_query("CREATE DATABASE my_db",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
?>
Criando uma tabela (Persons)
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);
mysql_close($con);
?>
Extraindo informação de uma tabela
$con = mysql_connect("localhost","user","pass");
if (!$con)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM Persons");
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br />";
}
mysql_close($con);
Estrutura de uma Query SQL (SDSS)
SELECT
p.ra,
p.dec,
p.dered_g,
p.dered_r,
p.psfMagerr_g,
p.psfMagerr_r into mydb.UMaI from PhotoPrimary as p
WHERE p.ra > 152.0
and p.ra < 164.0
and p.dec > 46.0
and p.dec < 56.0
E por ai vai...
Um exemplo prático
PaASP