Sunday, July 18, 2010

Classe Formatadora com Expressões Regulares

Aqui está outra classe muito útil para formatar qualquer tipo de dado, usando expressões regulares!

A classe consiste em duas partes, a primeira é uma variável chamada $formats onde nós guardamos as expressões regulares e uma função chamada format, onde executamos tudo.

class Formater{
  public static $formats=array(
    'date2sql' => array("'^([0-9]{2}).([0-9]{2}).([0-9]{4})'","$3-$2-$1"),
    'sql2date' => array("'^([0-9]{4}).([0-9]{2}).([0-9]{2})'","$3/$2/$1"),
  );

  public static function format($string,$type) {
        if (!isset(self::$formats[$type])) return $string;
        $find = self::$formats[$type][0];
        $replace = self::$formats[$type][1];

        return preg_replace($find,$replace,$string);
   }
}


// Mode of use - Como usar
$date1 = Formater::format('2010-08-01','sql2date'); // returns 01/08/2010
$date2 = Formatter::format('01/08/2010','date2sql'); // returns 2010-08-01

Você pode usar para o que precisar! Tudo que você precisa fazer é adicionar sua regex na var $formats e pronto!

Este é o tipo de classe que você precisará em todo o projeto que você faça!

No comments:

Post a Comment