Treinamento em PHP Avançado Aula 4 Ari Stopassola Junior stopassola@acimainteractive.com
pgsql access oracle mysqli db2 firebird... ADOdb utilizando sintaxe da PEAR::DB require_once /website/_classes/adodb/adodb.inc.php"; $dsn = "mysql://usuario:senha@host/base"; $conexao = NewADOConnection($dsn); $sql="select codigo,nome,email FROM usuarios ORDER BY nome"; $resultado = $conexao->query($sql); $num_regs = $resultado->numrows(); //Obtém a quantidade de registros if ($num_regs > 0) { //Encontrou alguém //Por padrão a função fetchrow retorna os campos na ordem do select while ($linha = $resultado->fetchrow()) { $codigo = $linha[0]; $nome = $linha[1]; $email = $linha[2]; } } $resultado->free(); $conexao->disconnect();
JpGraph http://www.aditus.nu/jpgraph/ Biblioteca que cria gráficos usa a GD internamente. Gera plotagens em linha, barra, torta, torta 3D, radar, Gantt etc Suporta fontes TrueType, compressão, cache, transparência (alpha), trata cerrilhado (anti aliasing), imagens de fundo, ajuste de brilho, gradiente, rotação e outros. Versões PHP4: v1.xx.x PHP5: v2.xx.x
JpGraph 1 2 3 Faça o download da biblioteca adequada a versão do PHP que você está utilizando. Descomprima, renomeie (se achar necessário) e disponibilize num diretório comum, acessível por todos seus sistemas. include "./jpgraph/src/jpgraph.php"; include "./jpgraph/src/jpgraph_line.php"; $dados = array(18,9,35,2,16,20); $graph = new Graph(400,250); $graph->setscale("textlin"); $lineplot = new LinePlot($dados); $graph->add($lineplot); $graph->stroke();
JpGraph overview include "./jpgraph/src/jpgraph.php"; include "./jpgraph/src/jpgraph_line.php"; include "./jpgraph/src/jpgraph_bar.php"; include "./jpgraph/src/jpgraph_pie.php"; include "./jpgraph/src/jpgraph_radar.php"; include "./jpgraph/src/jpgraph_pie3d.php"; $dados = array(18,9,35,2,16,20); 1 $graph->img->setmargin(30,30,30,30); $graph->setscale("textlin"); 2 $graph->add($grafico); $graph->stroke(); 1 2 1 2 1 2 1 2 $graph = new graph(340,260); $grafico = new BarPlot($dados); $graph = new PieGraph(340,260); $grafico = new PiePlot($dados); $graph = new RadarGraph(340,260); $grafico = new RadarPlot($dados); $graph = new PieGraph(340,260); $grafico = new PiePlot3D($dados);
header Toda requisição ao servidor web gera um retorno. O cabeçalho transmite ao cliente informações sobre o arquivo. Deve ser especificado antes de qualquer elemento de tela. O header é enviado sempre - inerente as aplicações web. A função manipula a forma de interpretar o resultado força o browser a tratar o arquivo diferentemente.
header Redirecionamento Autenticação Personalizar erros Disparar plugins adequados Expiração header("content-type: text/plain"); <html> <body> Formato <b>texto</b> puro. </body> </html>
header Redirecionamento header( Location: http://www.acimainteractive.com ); exit(); Prevenir armazenamento em cache header("expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("last-modified: ". gmdate("d, d M Y H:i:s"). " GMT"); header("cache-control: no-store, no-cache, must-revalidate"); header("cache-control: post-check=0, pre-check=0", false); header("pragma: no-cache");
header Disparar plugin para tratar arquivos PDF header("content-type:application/pdf"); header("content-disposition:attachment;filename=para_download.pdf"); readfile(./arquivo_original.pdf"); Exibindo imagens diretamente header("content-type: image/png"); readfile("./imagem.png");
header Autenticação $autenticado = false; $usuario = $_SERVER['PHP_AUTH_USER']; $senha = $_SERVER['PHP_AUTH_PW']; if (isset($usuario) && isset($senha) && $usuario == "admin" && $senha == "ninja") { $autenticado = true; } if (!$autenticado) { header('www-authenticate: Basic realm="area protegida"'); header('http/1.0 401 Unauthorized'); echo "Lamento, mas você não foi autenticado. Tente novamente..."; exit; } Parabéns! Você está numa área protegida.
Expressões regulares Representa um padrão (pattern) Abstração de formato em símbolos Método formal de representação de texto Regras Metacaracteres que casam (match) um padrão Compara esse padrão a outra string Funções que manipulam as ocorrências, que se utilizam de Expressões Regulares Conhecidas também como: regexp, regex, RE e ER
Expressões regulares POSIX ereg ereg_replace split Para ignorar a diferença entre maiúsculas e minúsculas usa-se o próprio nome da função. Ex.: eregi eregi_replace spliti Perl Compatible Regular Expression (PCRE) preg_match preg_replace preg_split
Expressões regulares biblioteca PCRE Metacaracter Equivalência \d Número de 0-9 \D Tudo exceto números \w Qualquer alfanumérico e _ (underscore) \W Tudo exceto alfanumérico e _ \s Qualquer espaço, tabulação e nova linha \S Tudo exceto espaço, tabulação e nova linha. Tudo exceto nova linha
Expressões regulares biblioteca PCRE Operadores Significado? Ocorre 0 ou 1 vez * Ocorre 0 ou várias vezes + Ocorre 1 ou várias vezes {,n} Ocorre até (no máximo) n vezes {m,} Ocorre m ou mais vezes {m,n} Ocorre entre m e n vezes
Expressões regulares biblioteca PCRE A expressão deve estar entre barras (delimitadores) Ex.: /padrão/ Detecção: preg_match_all($regexp,$string,$ocorrencias); Substituição: preg_replace($regexp,$por,$string);