Заменить все слова из массива в php - PullRequest
1 голос
/ 12 октября 2011

Как мне найти и выделить все слова из массива в тексте?

пример:

$words = array('Test', 'I', 'tHiS', 'diFFerent');

Ожидаемый результат: Привет, Я Я в это простой тест Я хотел бы показать вам, кого мы можем заменить различные слова.

Ответы [ 2 ]

1 голос
/ 12 октября 2011
$str = preg_replace("~(".implode("|" , array_map(function($a){
    return preg_quote($a,"~");
},$words)).")~i" , "<strong>$1</strong>" , $str);

Вы можете попробовать

$str = preg_replace("~(".implode("|" , array_map(function($a){
    return '\b'.preg_quote($a,"~").'\b';
},$words)).")~i" , "<strong>$1</strong>" , $str);

чтобы указать, что оно должно быть full word

0 голосов
/ 12 октября 2011
$words = array('Test', 'I', 'tHiS', 'diFFerent');
$str = "Hi, i'm in this simple test I'd like to show you who we can replace different words.";
$str = preg_replace("/(".implode("|" , $words).")/i" , "<b>$1</b>" , $str);
echo $str;

Однако это выделит все «я» в строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...