Мне нужно удалить некоторые слова в предложении, но я хочу, чтобы слово, которое будет удалено, полностью соответствовало …
Это мой код:
<?php
function Clean ($text) {
$array = array(
'goo' => '',
'guu' => '',
);
return strtr($text, $array);
}
$OldText = "goo guu mygoo myguu gooyou guuyou";
$NewText = Clean($OldText);
echo $NewText;
?>
Я хочу этот: mygoo myguu gooyou guuyou
PHP возвращает: мой мой ты ты
Есть идеи? Заранее большое спасибо!
Ты можешь использовать preg_replace
с границами слов, и вы не получите частичных совпадений:
echo preg_replace('/\s*\b(goo|guu)\b\s*/', '', $OldText);
Демо-версия: https://eval.in/731588
Это мое полное решение, я надеюсь, что кто-то еще будет служить вам!
<?php
function Clean ($text) {
$array = array(
'/\s*\b(goo)\b\s*/',
'/\s*\b(guu)\b\s*/',
);
return preg_replace($array,'', $text);
}
$OldText = "goo guu mygoo myguu gooyou guuyou";
echo Clean($OldText);
?>