(PHP 4, PHP 5)
ereg_replace — Sustituye una expresión regular
$pattern
, string $replacement
, string $string
)
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.
pattern
Una expresión regular POSIX extendido.
replacement
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 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.
string
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:
Ejemplo #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:
Ejemplo #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.' */
?>
Ejemplo #3 Sustituye URLs por vínculos
<?php
$texto = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\0\">\0</a>", $texto);
?>
Nota:
Desde PHP 5.3.0, la extensión regex queda obsoleta 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.
ereg_replace() está obsoleta a partir de PHP 5.3.0. preg_replace() es la alternativa sugerida a esta función.