Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/11/2008, 10:09
Avatar de Deschamps
Deschamps
 
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Funciones óptimas en php5

Cita:
Iniciado por muscularmente Ver Mensaje
(..) El preg_match es considerablemente más rápido que ereg y mucho más potente. Por Ejemplo: (..)
Aparte de lo comentado sobre su rendimiento (que lo desconocía), hay una razón de peso para no usar regex POSIX (ereg y familia). El estandar POSIX no reconoce como alfanuméricos caracteres propios del español y otros idiomas (como las letras acentuadas, la Ñ, la Ç, etc). Y eso es para mí una razón suficiente como para desterrarlas y usar siempre regex PCRE (Perl compatibles, es decir, preg_*).

Para muestra, si queremos comprobar si una cadena está formada enteramente por letras o espacios y usamos:

Código PHP:
<?php
    $cadena 
"Qué tal compañero";
    
$patron "^([[:alpha:]]| )*$";
    
    echo 
"<pre>";
    echo 
eregi"$patron"$cadena ) ? "SI (POSIX)\n" "NO (POSIX)\n";
    echo 
preg_match"/$patron/i"$cadena ) ? "SI (PCRE)\n" "NO (PCRE)\n";
    echo 
"</pre>";
?>
Obtendremos:

Código:
NO (POSIX)
SI (PCRE)
Siendo la misma expresión regular en ambos casos.

Un saludo.

Última edición por Deschamps; 08/11/2008 a las 10:14