Programación y ejemplos de PHP, jQuery, HTML5, WordPress, MySQL, AMP y htaccess


PHP preg_replace(): Sustituir caracteres y cadenas con expresiones regulares

La función PHP preg_replace() sustituye caracteres y cadenas en una cadena de texto tras una búsqueda realizada mediante expresiones regulares.

Es muy últil a la hora de quitar o eliminar espacios en blanco, acentos, caracteres especiales, saltos de línea y para crear URLs amigables.

Otras funciones de PHP similares son:

La definición oficial es la siguiente:

Realiza una búsqueda y sustitución de una expresión regular

Sintaxis de preg_replace()

Veamos la sintaxis extráida de su web oficial:

El valor devuelto por la función depende de la cadena enviada, si se envía un array el resultado será un array, en caso contrario devuelve un string.

  • exp_regular (Obligatorio): Patrón o expresión regular de la búsqueda.
  • cadena_nueva (Obligatorio): Es el nuevo valor que se reemplazará en la $cadena.
  • cadena (Obligatorio): String o array donde queremos hacer la sustitución.
  • limite (Opcional): Número máximo de sustituciones a realizar, por defecto ‘-1’ indica que no hay límite de sustituciones.
  • contador (Opcional): Devuelve el número de sustituciones realizadas.

Ejemplo de la función PHP preg_replace()

Os pongo un secillo ejemplo de preg_replace():

Os explico el código:

  • Creo una cadena con varias palabras.
  • Muestro por pantalla con la función echo la misma cadena pero sustituyendo las palabras que sean numéricas y con 2 caracteres de longitud.

Ejemplo de la función PHP preg_replace() para detectar enlaces en una cadena de texto

En este ejemplo he reutilizado el mismo código que usé en el post sobre cómo detectar links en una cadena de texto:

Detallo cada Línea:

  1. Línea 3: en $cadena_origen almaceno los direntes enlaces que vamos a tratar.
  2. Líneas 8 y 10: detecto que la cadena tenga http, https o www, si encuentro este patrón entiendo que es una url y formo el enlace.
  3. Línea 14: busco que la palabra contenga una @.
  4. Línea 15: busco que la palabra contenga una #.

Ejemplo de la función PHP preg_replace() realizar sustituciones usando arrays

Ahora vamos con un último ejemplo de sustitución ayudándonos con un array:

Explico el ejemplo:

  • Cargamos en la $cadena los números del 1 al 10 en texto
  • Posteriormente en el array $exp_regular vamos cargando los textos que queremos buscar para sustituir.
  • En el array $cadena_nueva ponemos el valor que queremos sustituir.
  • Saco por pantalla con echo el resultado de la sustitución.

Ejemplo de la función PHP preg_replace() con límite y contador de sustituciones

Vamos a ver un último ejemplo para ver el funcionamiento del $limite y el $contador:

Aprovechando el ejemplo anterior:

  • A preg_replace() les pasamos adicionalmente el límite de sustituiones ‘-1’, este valor indica que no hay límite.
  • También le pasamos la variable $cuenta para almacenar las sustituciones.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies