Rafael Clares


Usando Expressões Regulares – PHP
Setembro 30, 2009, 12:49 am
Arquivado em: PHP | Tags:

Olá,

Vamos ver o básico de expressões regulares utilizando preg_match e preg_replace, teremos os exemplos:

- Procura palavra em String
- Substitui um dado valor dentro da String
- Verifica se a variável possui números
- Verifica se a variável possui texto

<?
	# String
	$str = "Eu uso PHP";

	# Printando o valor atual
	print "Valor atual: $str <br>";

	# Verificando se $str contém a palavra PHP
	if( preg_match ( '/PHP/i' , $str ) )
	{
		print "$str contém a palavra [PHP] <br>";
	}

	# Substituindo PHP por PHP and PostgreSQL
    $newStr = 'PHP and PostgreSQL' ;
	$str = preg_replace( '/PHP/' , $newStr, $str);

	# Printando o novo valor de $str por $newStr
	print "Substituído por: [$str] <br>";

	# Numero/Int
	$num = 12453;

	# Se $num possui o conjunto númerico de 0 à 9
	if( preg_match( '/[0-9]/' , $num ) )
	{
		print "[$num] é numérico <br>";
	}

	# Se $str NAO possui o conjunto númerico de 0 à 9
	if(! preg_match( '/[0-9]/' , $str ) )
	{
		print "[$str] é String <br>";
	}

	# Se $num NAO possui o conjunto  de A à Z
	if(! preg_match( '/[A-Z]/' , $num ) )
	{
		print "[$num] não contém letras<br>";
	}

?>

Sintaxes:
preg_match( ‘/padrao/’ , $variavelAlvo)    – Retorna False ou True

preg_replace( ‘/padrao/’ , ‘ novoValor ‘ , $variavelAlvo)    – Retorna  o novo valor substituído

O padrão deve ser sempre passado entre ‘/ /’ .

Para definir um conjunto deve passa-lo entre [ ].
Exemplo de conjunto:
[0-9]  mesmo que 0123456789
[A-Z] de A à Z
[A-Za-z] de A à Z e de a À z  (case sensitive)

Se deseja verificar se um endereço de e-mail possui @ o padrão seria ‘/@/’  mas isso não é suficiente para validar um endereço de e-mail pois se o endereço contiver mais de um @ seria validado normalmente.

Vimos apenas o mais básico possível sobre expressões regulares, estou aprendendo também e talvez esteja sendo no PHP o que mais me atrai no momento.

Exemplo do padrão para validação de um endereço de e-mail:
“/^[^!@#$%¨&*()0-9][a-zA-Z0-9_.]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/”;

Exemplo do padrão para validação para tags HTML:
“/<[^>]+>/is”

Pois é, a coisa é complexa, uma expressão para quem nunca curtiu as aulas de matemática pode ser bem chato haha.
Então leiam se quiserem criar algo realmente útil com RegExp.

Referências:

- preg_match
- preg_replace

Boa leitura e até logo.



Gerar XML com PHP e XMLWriter
Setembro 29, 2009, 11:26 pm
Arquivado em: PHP, XML

Olá,
Mais um exemplo de como gerar XML com PHP5,  neste caso iremos utilizar a Classe nativa do PHP5  o XMLWriter para gerar a saída XML formatada.

Este exemplo, sem dúvidas é bem mais simples que o anterior que utiliza o DOM ou SimpleXML.

Vejamos o código:

<?
# Instancia do objeto XMLWriter
$xml = new XMLWriter;

# Cria memoria para armazenar a saida
$xml->openMemory();

# Inicia o cabeçalho do documento XML
$xml->startDocument( '1.0' , 'iso-8859-1' );

# Adiciona/Inicia um Elemento / Nó Pai <item>
$xml->startElement("item");

#  Adiciona um Nó Filho <quantidade> e valor 8
$xml->writeElement("quantidade", 8);

#  Adiciona um Nó Filho <preco> e valor 110
$xml->writeElement("preco", 110);

#  Finaliza o Nó Pai / Elemento <Item>
$xml->endElement();

#  Configura a saida do conteúdo para o formato XML
header( 'Content-type: text/xml' );

# Imprime os dados armazenados
print $xml->outputMemory(true);

# Salvando o arquivo em disco
# retorna erro se o header foi definido
# retorna erro se outputMemory já foi chamado
$file = fopen('foo.xml','w+');
fwrite($file,$xml->outputMemory(true));
fclose($file);
?>

Obs: A chamada ao método $xml->outputMemory() descarrega os dados da memória então você só consegue chama-lo uma vez, logo, para salvar o arquivo você não pode ter chamado este método ainda.

Para salvar o arquivo corretamente você deve comentar as linhas abaixo:

# header( ‘Content-type: text/xml’ );
# print $xml->outputMemory(true);

Comente as linhas abaixo para apenas exibir o XML no browser:

# $file = fopen(‘foo.xml’,'w+’);
# fwrite($file,$xml->outputMemory(true));
# fclose($file);

Referência: http://br.php.net/manual/pt_BR/book.xmlwriter.php

 

Por enquanto é isso galera, bom divertimento e até mais.



Galeria de fotos LightBox (PHP + PostgreSQL / MySql Painel Admin)
Setembro 28, 2009, 1:04 am
Arquivado em: CSS, PHP, PostgreSql | Tags: , , ,

Olá,

Estou disponibilizando uma simples galeria de fotos.

Recursos:
- Post’s (editável)
- Galeria de Fotos Lightbox (gerenciável)
- Painel Admin (banco)
- Adiciona e remove fotos

Utiliza:
- PHP 5
- PostgreSQL / MySql
- Lightbox
- CSS e HTML

Configuração:
-  arquivo .php para informar os dados de acesso ao banco
-  criar tabelas do banco

Personalização:
- através de CSS

Design:
- Básico (nenhum)

Funcionalidade:
- Razoável

Limitações na versão padrão:
- mono usuário
- sem design
- código mal identado em alguns arquivos (devido a uma compactação, fiquei com preguiça de arrumar, baixe se quiser)

Link demo: www.clareslab.com.br/gallery
Link Adm: www.clareslab.com.br/gallery/admin
User: demo
Pass: demo

Galera, só peço pra não zoar colocando fotos inadequadas (putaria mesmo) e também nomes de pessoas, já sabem a nossa regrinha, se zoar eu tenho que remover… Espero que respeitem como fizeram no exemplo anterior do lightbox.
Agradeço por isso.

Download Free da versão PostgreSql : www.clareslab.com.br/learn/mygallery.rar

Versão MySql  R$ 50,00 : http://clareslab.com.br/mysqlgallery
Telas:

Página Pública

Página Pública

Post Página Pública

Post Página Pública

Painel Admin

Painel Admin

Galeria -Painel Admin

Galeria -Painel Admin

Post Painel Admin

Post Painel Admin

Configurando o programinha:

- Abra o arquivo class/Conexao.class.php
- Altere os dados de acesso ao PostgreSql ($host, $user e $pswd)

- Abra o arquivo includes/config.php altere os dados  abaixo:
$homeDB : Nome do banco postgresql
$baseURL : endereço do programa (ex. http://localhost/galeria)
$fotodir : diretório de fotos  (ex: c:\fotos ou /home/foo/fotos)

Crie as tabelas no banco PostgreSql
- O script para criar as tabelas está em src/tables.sql
Aproveite para alterar o usuário padrão do painel admin no arquivo src/tables.sql na linha :
- insert into usuarios (usuario,senha) values (‘demo’,'demo’)

O programa não tem interface atraente e esse não é o objetivo, esse programa foi um rascunho de um projetinho que eu havia feito à muito tempo, não teremos atualizações dele. Percebi que o pessoal tem baixado bastante o exemplo anterior do lightbox e achei lega disponibilizar esse rascunho que não está dificil de customizar.

Dica: Altere a interface utilizando CSS, existem tags HTML por todo o código facilitando customização
Ex:

Para colocar uma imagem de topo da página publica
- Abra o arquivo css/style.css e altere o caminho da imagem em e as propriedades do seletor #headerp

Para colocar uma imagem de topo do painel admin altere as propriedades do seletor #header
Para o rodapé: altere as propriedades  de  #footer

Galera não terei como ajudar em customizações de Layout, blz ?

Então é isso, veja o demo antes de baixar, assim você não se decepciona.

Quero pedir um favor a vocês, quem conseguir configurar  e for utilizar a galeria por favor manda o link para mim, assim eu coloco aqui, servirá para o pessoal ver como pode ser customizado o layout. Irei criar uma lista aqui com os endereços, ok;

1 - http://www.cerradodigital.com.br/galeria

Abraços,