preg_match es lo mismo que ereg?

Iniciado por SrTrp, 19 Diciembre 2017, 20:16 PM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Quería saber eso si es lo mismo ereg que preg_match o si sirve para lo mismo o cual es la direfencia :/ porque ereg lo uso en mi hosting, y me acabo de percatar que en mi localhost(xampp) no sirve esa función de ereg.
Código (php) [Seleccionar]

if (ereg("[^A-Za-z0-9]+",$_POST['usss'])) {
      $error12 = base64_encode("Esos caracteres no sirven");
echo "<script>location.href='/index.php?ffx=$error12'</script>";
}


_________________________________________________________________

if (preg_match("[^A-Za-z0-9]+",$_POST['usss'])) {
      $error12 = base64_encode("Esos caracteres no sirven");
echo "<script>location.href='/index.php?fxx=$error12'</script>";
}


engel lex

ereg es super viejo, fue marcado como obsoleto en 5.3, por allá hace como 4 años (o 5 años?)

estas funciones eran mucho más lentas y tenían problemas como que causaban overflows y otros detalles...  y si, ereg y preg son casi identicos, usualmente la mayor diferencia es que preg es más estricto con el regex
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

#!drvy

#2
ereg fue marcado como obsoleto en la versión 5.3 y fue eliminado de la versión >7.0. Su objetivo es el mismo (ejecutar sentencias regex) pero lo hacen de forma diferente.

De todos modos, si solo lo usas para validar, te recomiendo que uses la funcion nativa de PHP (filter_var) con su correspondiente filtro (FILTER_VALIDATE_REGEXP).

Código (php) [Seleccionar]
<?php

$validateUsss 
= array('options'=>array('regexp'=>'[^A-Za-z0-9]+'));

if(!
filter_var($_POST['usss'], $validateUsss)){
    
header('Location: index.php?fxx='.base64_encode('Esos caracteres no sirven'));
}

?>


Hay algunos filtros que ya los incluye PHP por defecto, como correos, url o IP.
http://php.net/manual/es/filter.filters.validate.php

Saludos

SrTrp

Cita de: engel lex en 20 Diciembre 2017, 01:50 AM
ereg es super viejo, fue marcado como obsoleto en 5.3, por allá hace como 4 años (o 5 años?)

estas funciones eran mucho más lentas y tenían problemas como que causaban overflows y otros detalles...  y si, ereg y preg son casi identicos, usualmente la mayor diferencia es que preg es más estricto con el regex
Gracias ya decia, pero porque no me vale con el preg solo aceptar numeros y letras me acepta todo signos y con ereg no me aceptaba signos.

Cita de: #!drvy en 20 Diciembre 2017, 07:30 AM
ereg fue marcado como obsoleto en la versión 5.3 y fue eliminado de la versión >7.0. Su objetivo es el mismo (ejecutar sentencias regex) pero lo hacen de forma diferente.

De todos modos, si solo lo usas para validar, te recomiendo que uses la funcion nativa de PHP (filter_var) con su correspondiente filtro (FILTER_VALIDATE_REGEXP).

Código (php) [Seleccionar]
<?php

$validateUsss 
= array('options'=>array('regexp'=>'[^A-Za-z0-9]+'));

if(!
filter_var($_POST['usss'], $validateUsss)){
    
header('Location: index.php?fxx='.base64_encode('Esos caracteres no sirven'));
}

?>


Hay algunos filtros que ya los incluye PHP por defecto, como correos, url o IP.
http://php.net/manual/es/filter.filters.validate.php

Saludos
Gracias por tu respuesta, intente usar la función que me reconmendaste ya que solo lo uso para validar pero no me funciono.

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.