Funciones de expresiones regulares POSIX
PHP Manual

ereg_replace

(PHP 4, PHP 5)

ereg_replaceSustituye una expresión regular

Descripción

string ereg_replace ( string $pattern , string $replacement , string $string )

Esta función busca en string coincidencias de pattern, después reemplaza el texto coincidido con replacement.

Advertencia

Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.

Parámetros

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.

Valores devueltos

Se devuelve la cadena modificada. Si no se encontraron coincidencias en string, éste será devuelto sin cambios.

Ejemplos

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);
?>

Notas

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.

Sugerencia

ereg_replace() está obsoleta a partir de PHP 5.3.0. preg_replace() es la alternativa sugerida a esta función.

Ver también


Funciones de expresiones regulares POSIX
PHP Manual