(PHP 3>= 3.0.9, PHP 4 , PHP 5)
preg_replace -- Lleva a cabo la búsqueda de una expresión y su sustitución
Descripción
mixed
preg_replace ( mixed pattern, mixed replacement, mixed subject)
Busca en subject los emparejamientos con
pattern y los sustituye por
replacement.
replacement puede contener referencias de la forma
\\n. Éstas serán
sustituidas por el texto obtenido por el patrón del paréntesis
nésimo. n puede tener
un valor de cero a noventa y nueve, y \\0 se refiere al
texto casado por el patrón completo. Para obtener el número del subpatrón
de búsqueda, los paréntesis abiertos son contados de izquierda derecha
tomando el primero como uno.
Si el patrón no es encontrado en subject, entonces
no se realizarán cambios.
Todos los parámetros de la función preg_replace() pueden
ser un array.
Si subject es un array, entonces la búsqueda y sustitución
es realizada para todos los elementos de subject,
y el valor devuelto es también un array.
Si pattern y replacement
son arrays, entonces preg_replace() toma un valor desde
cada array y los usas para buscar y sustituir sobre
subject. Si replacement
tiene menos valores que pattern, entonces la cadena
vacía es usada como valor para el resto de sustituciones. Si pattern
es una array y replacement es una cadena,
entonces esta cadena de sustitución es usada para todos los valores de
pattern. Sin embargo, lo contrario no tiene sentido.
El modificador /e hace que la función preg_replace()
trate el parámetro replacement como código PHP después
de que la apropiada sustitución sea hecha. Atención, asegúrate que replacement
es un código PHP correcto, de otro modo PHP dará un error de parse en la
línea que contenga preg_replace().
Nota:
Este modificador fue añadido en PHP 4.0.
Ejemplo 1. Sustituir varios valores <?php
$patterns = array("/(19|20\d{2})-(\d{1,2})-(\d{1,2})/", "/^\s*{(\w+)}\s*=/");
$replace = array("\\3/\\4/\\1", "$\\1 =");
print preg_replace($patterns, $replace, "{startDate} = 1999-5-27");
?> |
|
Esta ejemplo dará como resultado:
Ejemplo 2. Usar el modificador /e
<?php preg_replace("/(<\/?)(\w+)([^>]*>)/e", "'\\1'.strtoupper('\\2').'\\3'", $html_body); ?>
|
Pondrá en mayúscula todos los tags HTML del texto de entrada. |
Examina también preg_match(),
preg_match_all(), y
preg_split().