Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2011, 09:09
Avatar de h2swider
h2swider
 
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 3 meses
Puntos: 194
ereg -> preg_match

Ayer me entere que ereg estaba deprecada, entonces estoy intentando pasar mis RE para que sean aceptadas por el preg_match, al principio pense que al agregarles el / al principio y final bastaria, pero me esta tirando un warning "Unknown modifier '[' en la linea que corresponde al 'periodo'

Antes (funcionaba)
Código PHP:
private static $validador = Array(
        
'requerido' => array('expresion' =>'[^[:space:],0]','error'=>' es un dato obligatorio.'),
        
'usuario'   => array('expresion' =>'(^(u|U)(p|P)[0-9]{10,15}[a-z|A-Z]{0,1}$)|^0{0,1}$','error'=>'Ingreso algún usuario inválido.'),
        
'file'      => array('expresion' =>'(^[0-9]{1,7}$)|^0{0,1}$','error'=>'Ingreso algún file inválido.'),
        
'modulo'    => array('expresion' =>'(^[0-9]{1,4}$)|^0{0,1}$','error'=>'Ingreso algún modulo inválido.'),
        
'periodo'   => array('expresion' =>'(^((0[1-9]|1[0-2])/[1-2][0-9]{3})$)|^0{0,1}$','error'=>'Ingreso algún período inválido.'),
        
'proceso'   => array('expresion' =>'(^[0-9]{1,6}$)|^0{0,1}$','error'=>'Ingreso algún proceso inválido.')
    );
    private static 
$formularioValido true;

    
/**
     * Aplica una validación a la cadena
     * En caso de que la cadena tenga comas, se separará por las mismas y se hará una validación de cada poisición que fue separada.
     * 
     * @static
     * @param string Es el valor (normalmente un post) que tendrá que analizar si está validado o no.
     * @param string Es el tipo de validación que se llevará a cabo. Valores posibles: 'requerido' , 'usuario' , 'file' , 'modulo' , 'periodo' , 'proceso' .
     * @param string mensaje de error (por defecto será null)
     * @return boolean en caso de que el dato sea correcto devolverá true, sino false.
     */
    
public static function validar($values$validador$nombre null) {
        
$valido true;
        
$values explode(',',$values);
        foreach (
$values as $value) {
            if (!
ereg(self::$validador[$validador]['expresion'], $value)){
                
$valido false;
                
self::$formularioValido false;
                
self::$errores[] = $nombre.self::$validador[$validador]['error'];
                break;
            }
        }
        return 
$valido;
    } 
Actual
Código PHP:
private static $validador = Array(
        
'requerido' => array('expresion' =>'/[^[:space:],0]/','error'=>' es un dato obligatorio.'),
        
'usuario'   => array('expresion' =>'/(^(u|U)(p|P)[0-9]{10,15}[a-z|A-Z]{0,1}$)|^0{0,1}$/','error'=>'Ingreso algún usuario inválido.'),
        
'file'      => array('expresion' =>'/(^[0-9]{1,7}$)|^0{0,1}$/','error'=>'Ingreso algún file inválido.'),
        
'modulo'    => array('expresion' =>'/(^[0-9]{1,4}$)|^0{0,1}$/','error'=>'Ingreso algún modulo inválido.'),
        
'periodo'   => array('expresion' =>'/(^((0[1-9]|1[0-2])/[1-2][0-9]{3})$)|^0{0,1}$/','error'=>'Ingreso algún período inválido.'),
        
'proceso'   => array('expresion' =>'/(^[0-9]{1,6}$)|^0{0,1}$/','error'=>'Ingreso algún proceso inválido.')
    );
    private static 
$formularioValido true;

     
/**
     * Aplica una validación a la cadena
     * En caso de que la cadena tenga comas, se separará por las mismas y se hará una validación de cada poisición que fue separada.
     * 
     * @static
     * @param string Es el valor (normalmente un post) que tendrá que analizar si está validado o no.
     * @param string Es el tipo de validación que se llevará a cabo. Valores posibles: 'requerido' , 'usuario' , 'file' , 'modulo' , 'periodo' , 'proceso' .
     * @param string mensaje de error (por defecto será null)
     * @return boolean en caso de que el dato sea correcto devolverá true, sino false.
     */
    
public static function validar($values$validador$nombre null) {
        
$valido true;
        
$values explode(',',$values);
        foreach (
$values as $value) {
            if (!
preg_match(self::$validador[$validador]['expresion'], $value)){
                
$valido false;
                
self::$formularioValido false;
                
self::$errores[] = $nombre.self::$validador[$validador]['error'];
                break;
            }
        }
        return 
$valido;
    } 
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives