regulares - PHP preg_replace/preg_match vs PHP str_replace
preg_replace_callback (3)
str_replace
busca str_replace
de texto puro mientras preg_replace
busca patrones.
¿Alguien puede darme un resumen rápido de las diferencias por favor?
En mi opinión, ambos hacen lo mismo?
Gracias
str_replace
reemplaza una ocurrencia específica de una cadena, por ejemplo, "foo" solo coincidirá y reemplazará eso: "foo". preg_replace
hará coincidir las expresiones regulares, por ejemplo "/f.{2}/" coincidirá y reemplazará "foo", pero también "fey", "fir", "fox", "f12", etc.
[EDITAR]
Ver por ti mismo:
$string = "foo fighters";
$str_replace = str_replace(''foo'',''bar'',$string);
$preg_replace = preg_replace(''/f.{2}/'',''bar'',$string);
echo ''str_replace: '' . $str_replace . '', preg_replace: '' . $preg_replace;
El resultado es:
str_replace: bar fighters, preg_replace: bar barhters
:)
str_replace
solo reemplazará una cadena fija con otra cadena fija, y será mucho más rápido.
Las funciones de expresión regular le permiten buscar y reemplazar un patrón no fijo llamado expresión regular . Hay muchos "sabores" de expresión regular que son en su mayoría similares pero tienen ciertos detalles que difieren; de la que estamos hablando aquí es Perl Compatible Regular Expressions ( PCRE ).
Si te parecen iguales, entonces deberías usar str_replace
.