(PHP 4, PHP 5)
ereg_replace — Sustituye una expresión regular
Esta función busca en string coincidencias de pattern, después reemplaza el texto coincidido con replacement.
Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.
Una expresión regular POSIX extendido.
Si pattern contiene sub-cadenas entre paréntesis, replacement puede contener sub-cadenas de la forma \\dígito, las cuales serán sustituidas por el texto que coincida con la sub-cadena entre paréntesis que que coincida con el número marcado por dígito; \\0 producirá el contenido completo de la cadena. Se pueden usar hasta nueve sub-cadenas. Los paréntesis se pueden anidar, en cuyo caso son contados por los paréntesis de apertura.
La cadena de entrada.
Se devuelve la cadena modificada. Si no se encontraron coincidencias en string, éste será devuelto sin cambios.
Por ejemplo, el siguiente trozo de código imprime "Esto era una prueba" tres veces:
Example #1 Ejemplo de ereg_replace()
<?php
$cadena = "Esto es una prueba";
echo str_replace(" es", " era", $cadena);
echo ereg_replace("( )es", "\\1era", $cadena);
echo ereg_replace("(( )es)", "\\2era", $cadena);
?>
Una cosa a tener en cuenta es que si se usa un valor entero como el parámetro replacement, puede no obtenerse los resultados que se esperaban. Esto es a causa de que ereg_replace() interpretará el número como el valor ordinal de un carácter, y lo aplica. Por ejemplo:
Example #2 Ejemplo de ereg_replace()
<?php
/* Esto no funcionará como se esperaba. */
$número = 4;
$cadena = "Esta cadena tiene cuatro palabras.";
$cadena = ereg_replace('cuatro', $número, $cadena);
echo $cadena; /* Salida: 'Esta cadena tiene palabras.' */
/* Estó funcionará. */
$número = '4';
$cadena = "Esta cadena tiene cuatro palabras.";
$cadena = ereg_replace('cuatro', $número, $cadena);
echo $cadena; /* Salida: 'Esta cadena tiene 4 palabras.' */
?>
Example #3 Sustituye URLs por vínculos
<?php
$texto = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $texto);
?>
Note:
Desde PHP 5.3.0, la extensión regex queda absoleta y en su lugar se utiliza extensión PCRE. Si se llama a esta función creará un aviso E_DEPRECATED. Ver El listado de diferencias para obtener ayuda a convertir a PCRE.
preg_replace(), la cual usa una sintaxis de expresiones regulares compatibles con Perl, es a menudo una alternativa más rápida que ereg_replace().