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;