substr_replace str_replace special reemplazar preg_replace especiales characters caracteres php string replace str-replace

str_replace - PHP string replace match palabra completa



substr_replace php (3)

Lista de reemplazo de matriz : en caso de que las cadenas de reemplazo se sustituyan entre sí, necesita preg_replace_callback .

$pairs = ["one"=>"two", "two"=>"three", "three"=>"one"]; $r = preg_replace_callback( "//w+/", # only match whole words function($m) use ($pairs) { if (isset($pairs[$m[0]])) { # optional: strtolower return $pairs[$m[0]]; } else { return $m[0]; # keep unreplaced } }, $source );

Obviamente / para la eficiencia //w+/ podría reemplazarse por una lista de claves //b(one|two|three)/b/i .

Me gustaría reemplazar solo palabras completas usando php

Ejemplo: si tengo

$text = "Hello hellol hello, Helloz";

y yo uso

$newtext = str_replace("Hello",''NEW'',$text);

El nuevo texto debería verse como

NUEVO hello1 hola, Helloz

PHP devuelve

NUEVO hello1 hola, NEWz

Gracias.


Quieres usar expresiones regulares El /b coincide con un límite de palabra.

$text = preg_replace(''//bHello/b/'', ''NEW'', $text);

Si $text contiene $text UTF-8, tendrá que agregar el modificador Unicode "u", para que los caracteres no latinos no se malinterpreten como límites de palabras:

$text = preg_replace(''//bHello/b/u'', ''NEW'', $text);


palabra múltiple en cadena reemplazada por esta

$String = ''Team Members are committed to delivering quality service for all buyers and sellers.''; echo $String; echo "<br>"; $String = preg_replace(array(''//bTeam/b/'',''//bfor/b/'',''//ball/b/''),array(''Our'',''to'',''both''),$String); echo $String;