2010-08-15 18 views
26

¿Cómo puedo usar str_ireplace (o algo similar) para reemplazar el texto por el formato y luego devolverlo con los mismos topes?str_ireplace() con mantenimiento del estuche

Ejemplo:

$original="The quick red fox jumps over the lazy brown dog."; 
$find="thE"; 

print str_ireplace($find,'<b>'.$find.'</b>',$original); 

Eso sería: lA rápido zorro rojo salta sobre el perro marrón perezoso.

Quiero que mantenga la caja original y solo aplique el formato, en este ejemplo, en negrita.

Gracias.

Respuesta

39
$original = "The quick red fox jumps over the lazy brown dog."; 
$new = preg_replace("/the/i", "<b>\$0</b>", $original); 

da "El rápido zorro rojo salta por encima de la marrón del perro perezoso". Si desea hacer coincidir palabras específicas, puede agregar límites de palabras: preg_replace('/\bthe\b/i', ....

Si desea parametrizar la sustitución, puede utilizar preg_quote:

preg_replace('/\b' . preg_quote($word, "/") . '\b/i', "<b>\$0</b>", $original); 
+0

Excelente, gracias. – Francisc

+0

* El zorro marrón rápido salta sobre el perro perezoso – Popnoodles

2

reemplazar con la palabra exacta, o utiliza preg_replace:

preg_replace('/(The)/i', "<strong>$1</strong>", $original); 
+0

Gracias, mhitza. – Francisc

Cuestiones relacionadas