ereg_replace
(PHP 4, PHP 5)
ereg_replace — Sustituye una expresión regular
Descripción
$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.
Parámetros
-
pattern -
Una expresión regular POSIX extendido.
-
replacement -
Si
patterncontiene sub-cadenas entre paréntesis,replacementpuede 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.
ereg_replace() está obsoleta a partir de PHP 5.3.0. preg_replace() es la alternativa sugerida a esta función.
Ver también
- ereg() - Comparación de una expresión regular
- eregi() - Comparación de una expresión regular de forma insensible a mayúsculas-minúsculas
- eregi_replace() - Sustituye una expresión regular de forma insensible a mayúsculas-minúsculas
- str_replace() - Reemplaza todas las apariciones del string buscado con el string de reemplazo
- preg_replace() - Realiza una búsqueda y sustitución de una expresión regular
- quotemeta() - Escapa meta caracteres