str_replace "reemplaza una cadena por otra".
En este ejemplo en toda la cadena <body text='%body%'> se buscará el string %body% y donde lo encuentre lo reemplazará por black. El resultado sería:
Cita: <body text='black'> (la cadena original era <body text='%body%'>)
Algo muy parecido hace preg_replace, pero de una forma más "avanzada" ya que le puedes usar expresiones regulares para encontrar algo más complejo:
Código PHP:
Ver original<?php
$cadena = 'Abril 15, 2003'; //tenemos esta cadena
$patrón = '/(\w+) (\d+), (\d+)/i'; //la capturamos con la expresión regular
$sustitución = '${1}1,$3'; //sustituimos lo capturado con una nueva cadena
echo preg_replace($patrón, $sustitución, $cadena); //Resultado: Abril1,2003
El patrón se entiende perfectamente en el link que te dieron y en la sustitución $1 y $3 son la captura o subpatron, 1 de (\w+) y 3 del segundo (\d+) (Cada paréntesis toma un número en este ejemplo). Lo que hace es tomar lo mismo que se capturó entre los paréntesis y cambiarle el 15 por el 1 sin espacios.
Espero que se entienda.
Lee bien el manual. Saludos.