Foros del Web » Programando para Internet » PHP »

ereg y preg_match

Estas en el tema de ereg y preg_match en el foro de PHP en Foros del Web. Estaba probando unas cosas con un código, que funcionaba bien, pero (tengo en local los errores al máximo) me dice que la función ereg está ...
  #1 (permalink)  
Antiguo 01/04/2010, 11:16
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
ereg y preg_match

Estaba probando unas cosas con un código, que funcionaba bien, pero (tengo en local los errores al máximo) me dice que la función ereg está "Deprecated". Para no tener problemas en el futuro, he buscado una función parecida, y he encontrado preg_match, pero me da error:

Warning: preg_match(): Unknown modifier '@' (en la línea 2)

El código con preg_match es este, que es el mismo que con ereg:
Código PHP:
function validacorreo ($email){
    if (!
preg_match("^[^@]{1,64}@[^@]{1,255}$"$email)){
        return 
false;
    }
    
$email_array explode("@"$email);
    
$local_array explode("."$email_array[0]);
    for (
$i 0$i sizeof($local_array); $i++) {
        if (!
preg_match("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"$local_array[$i])) {
            return 
false;
        }
    } 
    if (!
preg_match("^\[?[0-9\.]+\]?$"$email_array[1])){ 
        
$domain_array explode("."$email_array[1]);
        if (
sizeof($domain_array) < 2) {
            return 
false;
        }
        for (
$i 0$i sizeof($domain_array); $i++){
            if (!
preg_match("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$"$domain_array[$i])){
            return 
false;
            }
        }
    }
return 
true;

Alguien sabe alguna función idéntica a ereg, o como arreglar ese error?

Edito: no puedo usar preg_match porque en el remoto no tengo PERL, acabo de verlo.
  #2 (permalink)  
Antiguo 01/04/2010, 11:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ereg y preg_match

por favor... no necesitas PERL para ejecutar preg_match(), ¿ya leíste el manual??

la única diferencia son los delimitadores y modificadores.... por favor, lee antes...
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/04/2010, 11:26
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: ereg y preg_match

No lo leí, lo hojee, y vi: PCRE — Regular Expressions (Perl-Compatible) y ahí me quedé. Si me dices que no necesito PERL, me lo voy a leer mejor.
  #4 (permalink)  
Antiguo 01/04/2010, 11:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: ereg y preg_match

¿Qué versión de PHP está instalada en el remoto? Además no necesitas PERL para correr los PCRE. Corre un código sencillo en el remoto para que veas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 01/04/2010, 11:47
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: ereg y preg_match

Cita:
Iniciado por abimaelrc Ver Mensaje
¿qué versión de php está instalada en el remoto? Además no necesitas perl para correr los pcre. Corre un código sencillo en el remoto para que veas.
5.2.10
  #6 (permalink)  
Antiguo 01/04/2010, 11:51
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: ereg y preg_match

No debes tener dificultades usando la librería de PCRE.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 01/04/2010, 11:52
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: ereg y preg_match

Con uno de los ejemplos que me ha pasado antes, funciona perfectamente.
  #8 (permalink)  
Antiguo 01/04/2010, 12:02
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: ereg y preg_match

Ya estoy con la "transcripción" (soy cabezón y no voy a buscar nuevos ejemplos, voy a modificar este):

"^[^@]{1,64}@[^@]{1,255}$"

El operador ^@, quiere decir cualquier carácter excepto @ o espacio. Cómo puedo ponerlo en PCRE?
  #9 (permalink)  
Antiguo 01/04/2010, 12:09
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: ereg y preg_match

Código PHP:
Ver original
  1. <?php
  2.  
  3. preg_match('/^[^@]{1,64}@[^@]{1,255}$/', $subject);
  4.  
  5. ?>
  #10 (permalink)  
Antiguo 01/04/2010, 12:25
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: ereg y preg_match



Siempre me pasa lo mismo, me miro los manuales a la mitad. Ahora ya funcionan, lo único que me faltaba en todos era el carácter / al principio y al final. Gracias a todos!!

Etiquetas: ereg
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:40.