RegExp - Em PHP PDF Imprimir E-mail
Escrito por Ribamar FS   
Ter, 20 de Outubro de 2009 17:40

 

Expressões Regulares em PHP

 

O PHP tem um bom suporte para Expressões Regulares, com as funções ereg, ereg_replace e split.

 

Um detalhe muito interessante é que ao casar um padrão, você pode opcionalmente colocar os conteúdos dos grupos em posições de uma matriz ("array"), numerada de acordo com o número dos grupos abertos. É uma maneira fácil de declarar diversas variáveis de uma vez.

$hora = "12:34";
$er = "([0-9]{2}):([0-9]{2})";

if (ereg($er, $hora, $matriz)){
echo "Em Brasília $matriz[1] horas e ";
echo "$matriz[2] minutos.\n";
}

 

<?php

// Exemplos do manual do PHP

// Retrna true se "abc" for encontrada em qualquer posição da $string.

ereg("abc", $string);

 

// Retrna true se "abc" for encontrada no início da $string.

ereg("^abc", $string);

 

// Retrna true se "abc" for encontrada no final da $string.

ereg("abc$", $string);

 

// Retorna true se o navegador cliente for Netscape 2, 3 ou MSIE 3.

eregi("(ozilla.[23]|MSIE.3)", $_SERVER["HTTP_USER_AGENT"]);

 

// Adiciona 3 espaços separando palavras em $regs[1], $regs[2] and $regs[3].

ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs);

 

// Coloca a tag <br /> no início da $string.

$string = ereg_replace("^", "<br />", $string);

 

// Coloca a tag <br /> no final da $string.

$string = ereg_replace("$", "<br />", $string);

 

// Livrar-se de qualquer caractere de newline em $string.

$string = ereg_replace("\n", "", $string);

?>

 

 

<?php

// Validação de e-mail

function validateMail($mail) {

if($mail !== "") {

if(ereg("^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$", $mail)) {

return true;

} else {

return false;

}

} else {

return false;

}

}

?>

 

Manual do PHP

pascalaschwanden at gmail dot com

 

<?php

// Várias validações

function isValid($type,$var) {

$valid = false;

switch ($type) {

case "IP":

if (ereg('^([0-9]{1,3}\.){3}[0-9]{1,3}$',$var)) {

$valid = true;

}

break;

case "URL":

if (ereg("^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu)$",$var)) {

$valid = true;

}

break;

case "SSN":

if (ereg("^[0-9]{3}[- ][0-9]{2}[- ][0-9]{4}|[0-9]{9}$",$var)) {

$valid = true;

}

break;

case "CC":

if (ereg("^([0-9]{4}[- ]){3}[0-9]{4}|[0-9]{16}$",$var)) {

$valid = true;

}

break;

case "ISBN":

if (ereg("^[0-9]{9}[[0-9]|X|x]$",$var)) {

$valid = true;

}

break;

case "Date":

if (ereg("^([0-9][0-2]|[0-9])\/([0-2][0-9]|3[01]|[0-9])\/[0-9]{4}|([0-9][0-2]|[0-9])-([0-2][0-9]|3[01]|[0-9])-[0-9]{4}$",$var)) {

$valid = true;

}

break;

case "Zip":

if (ereg("^[0-9]{5}(-[0-9]{4})?$",$var)) {

$valid = true;

}

break;

case "Phone":

if (ereg("^((\([0-9]{3}\) ?)|([0-9]{3}-))?[0-9]{3}-[0-9]{4}$",$var)) {

$valid = true;

}

break;

case "HexColor":

if (ereg('^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$',$var)) {

$valid = true;

}

break;

case "User":

if (ereg("^[a-zA-Z0-9_]{3,16}$",$var)) {

$valid = true;

}

break;

}

return $valid;

}

 

#Example:

$phone = "789-1234";

if (isValid("Phone",$phone)) {

echo "Valid Phone Number";

} else {

echo "Invalid Phone Number";

}

?>

 

 

 

 

Sanitizar requests

<?php

// app_config.php

 

/**

* SANITIZE REQUEST

*/

 

function sanitize_request($methods, $array)

{

// methods: trim ; addslashes ; stripslashes ; etc...

// array : $_GET ; $_POST ; etc...

 

foreach ($methods as $function) {

$array = array_map($function, $array);

}

return $array;

}

 

if ( ! get_magic_quotes_gpc() )

{

$methods = array('trim', 'addslashes');

$_GET = sanitize_request($methods, $_GET);

$_POST = sanitize_request($methods, $_POST);

$_COOKIE = sanitize_request($methods, $_COOKIE);

$_REQUEST = sanitize_request($methods, $_REQUEST);

}

?>

 

 

# I was looking to remove all email address and links from post

# for a non-commercial posting website (like forum or classifieds)

 

# The function

 

<?PHP

function verify_email_and_link_in_post($c){

# modify email addess and link with this:

$l="LINKS ARE PROHIBITED ON THIS WEBSITE";

$e="EMAIL ADDRESS ARE PROHIBITER ON THIS WEBSITE";

# check for email address

$c=ereg_replace".

"("[-a-z0-9!#$%&\'*+/=?^_`{|}~]+@([.]?[a-zA-Z0-9_/-])*",".

"$e,$c);

# replace all sign @ with the letters at

$c=ereg_replace".

"("@", " at ",$c);

# check for link HTML input

$c=eregi_replace".

"('(<a [^<]*href=["|\']?([^ "\']*)["|\']?[^>].*>([^<]*)</a>)',".

"$l,$c);

# check for anythink like http:// or ftp://

$c=ereg_replace".

"("[a-zA-Z]+://([.]?[a-zA-Z0-9_/-])*",".

"$l,$c);

# check for anyhting starting with www.

$c=ereg_replace".

"("(^| )(www([-]*[.]?[a-zA-Z0-9_/-?&%])*)",".

"$l,$c);

# finaly check for anything like a-z.a-z

$c=ereg_replace".

"("[-a-z0-9!#$%&\'*+/=?^_`{|}~]+[.]+[-a-z0-9]",".

"$l,$c);

return $c;

}

?>

# hope this help someone ;-)

 

Quebra a string separando os pedaços usando 'a' como separador

 

$string = "aBBBaCCCADDDaEEEaGGGA";

$chunks = spliti ("a", $string, 5);

print_r($chunks);

 

 

 

Comentários
Pesquisar
Somente usuários registrados podem escrever comentários!

3.25 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Última atualização em Ter, 20 de Outubro de 2009 21:10
 
 

Busca no Site