Я использую следующую функцию, чтобы выделить искомые ключевые слова из строки. Он работает нормально, но у него мало проблем.выделить только набранные ключевые слова из строки в php
$text="This is simple test text";
$words="sim text";
echo highlight($text, $words);
Используя следующую функцию, которую он выдвигает на первый план как «простые» & «текст» слова, где я хочу его следует выделить «сим» & «текст» только слова. Какие изменения я должен внести для достижения этого результата. Пожалуйста, порекомендуйте.
function highlight($text, $words)
{
if (!is_array($words))
{
$words = preg_split('#\\W+#', $words, -1, PREG_SPLIT_NO_EMPTY);
}
$regex = '#\\b(\\w*(';
$sep = '';
foreach ($words as $word)
{
$regex .= $sep . preg_quote($word, '#');
$sep = '|';
}
$regex .= ')\\w*)\\b#i';
return preg_replace($regex, '<span class="SuccessMessage">\\1</span>', $text);
}
чем причина вы используете '\\ b',' \\ w' и '\\ W' вместо просто' \ b', '\ w' и' \ W'? – h2ooooooo
Это дает тот же результат в обоих случаях. Пожалуйста, порекомендуйте. – KRA
@KRA, какой вывод вы хотите точно для ввода образца? – Dogbert