Выделить слова другим цветом

dim-dem

Новичок
Выделить слова другим цветом

Есть база, из которой выбираются название статьи ("zagl")
и текст статьи ("article").

Название может состоять из нескольких слов.
Как сделать подсветку тех слов в тексте статьи("article"), которые встречаются в названии("zagl").

Когда название сожердит одно слово, то понятно:
$article = str_replace("$zagl","<font color=#ffffff>$zagl</font>", $article);

А как быть когда в названии несколько слов?
Помогите, плз.
 

vladax

Новичок
dim-dem
дели заголовок на слова и подсвечивай эти слова в тексте..
какие проблемы?
 

antiportal

Guest
dim-dem
Наверное, нужно делать explode и цикл для получившегося массива.
 

dim-dem

Новичок
Получился такой вариант, но мне не нравится цифра 10 в цикле. Как определить ее из "explode"?
И может как-то можно оптимизировать очистку знаков препинания?
PHP:
$zzzagl = str_replace(","," ", $zagl);
$zzzagl = str_replace("."," ", $zzzagl);
$zzzagl = str_replace("!"," ", $zzzagl);
$zzzagl = str_replace("?"," ", $zzzagl);
$zzzagl = str_replace(";"," ", $zzzagl);
$zzzagl = str_replace(":"," ", $zzzagl);
$zzzagl = str_replace("+"," ", $zzzagl);
$zzzagl = str_replace("-"," ", $zzzagl);
$zzzagl = str_replace("\""," ", $zzzagl);
$zzzagl = str_replace("'"," ", $zzzagl);
$zzzagl = str_replace("`"," ", $zzzagl);
$zzzagl = str_replace("*"," ", $zzzagl);
$zzzagl = explode(" ",$zzzagl);

for($i=0;$i<10;$i++){
if ($zzzagl[$i]!=''){
  $article = str_replace("$zzzagl[$i]","<font color=#ffffff>$zzzagl[$i]</font>", $article);
  }
}
 

SiMM

Новичок
Во-первых, [m]str_replace[/m], во-вторых, [m]strtr[/m], в-третьих,
PHP:
if ($zzzagl[$i]!='')
генерирует нотисы, если [m]count[/m]($zzzagl)<10, в-четвёртых, какой смысл в кавычках в этом выражении
PHP:
"$zzzagl[$i]"
?
PS: и вообще, существует [m]foreach[/m]
 

dim-dem

Новичок
Спасибо всем за помощь.
Есть еще очень важный вопрос по этой теме.
Как отбросить те слова, у которых количество букв <=3
 

antiportal

Guest
PHP:
foreach ($zzzagl as $word) {
    if (strlen($word) >= 3)
    $article = str_replace($word,"<font color=#ffffff>". $word ."</font>", $article);
}
 
Сверху