Модификация скрипта
Ребята, плиз, подскажите как изменить данный скрипт:
Код:
<style>
p {
font-family: Arial;
font-size: 14px;
}
a.ssilka1 {
color: #ff0000;
text-decoration: underline;
}
a.ssilka1:hover {
color: #ff0000;
text-decoration: none;
}
a.ssilka2 {
color: #33cc00;
text-decoration: underline;
}
a.ssilka2:hover {
color: #33cc00;
text-decoration: none;
}
a.ssilka3 {
color: #ff0099;
text-decoration: underline;
}
a.ssilka3:hover {
color: #ff0099;
text-decoration: none;
}
</style>
<?php
@setlocale(LC_CTYPE, 'ru_RU.CP1251');
//для ссылок внутри статей
$words=array(
'болезни',
'болезнь',
'болезнью',
'болезнями',
'болезней',
'выделяем любое словосочетание',
'Одна большая фраза',
'ракета'
);
$open_tags=array(
'<a class="ssilka1" href="modules.php?name=page">',
'<a class="ssilka1" href="modules.php?name=page">',
'<a class="ssilka1" href="modules.php?name=page">',
'<a class="ssilka1" href="modules.php?name=page">',
'<a class="ssilka1" href="modules.php?name=page">',
'<a class="ssilka2" href="modules.php?name=page2">',
'<a class="ssilka3" href="modules.php?name=page3">',
'<a class="ssilka3" href="modules.php?name=page3">'
);
$close_tags=array(
'</a>',
'</a>',
'</a>',
'</a>',
'</a>',
'</a>',
'</a>',
'</a>'
);
function highlight_first($text, $words, $open_tags, $close_tags) {
$arReplace = array();
for($i=0; $i<count($words); $i++) {
$words[$i] = "/\b(".preg_quote($words[$i]).")\b/i";
$arReplace[]= $open_tags[$i]. '\1'. $close_tags[$i];
}
$text = preg_replace($words, $arReplace, $text, 1);
return $text;
}
$text = "Пример текста и болезни и потом ещё всякий текст и бац болезнь. Потом дальше болезнью. Болезнями разными. Много всяких плохих болезней. Аага точно болезни. Возможно в тексте нужно будет выделяем любое словосочетание! Здесь будет ещё Одна большая фраза. И ещё полетит в космос ракета. Ракета это круто :)";
$text=highlight_first($text,$words,$open_tags,$close_tags);
echo "<br><p><b>Сейчас результат такой:</b></p>";
echo "<p>$text</p>";
echo "<br/><hr>";
echo "<p><b>Должен быть результат таким:</b></p>";
echo "<p>Пример текста и <a class=\"ssilka1\" href=\"modules.php?name=page\">болезни</a> и потом ещё всякий текст и бац болезнь. Потом дальше болезнью. Болезнями разными. Много всяких плохих болезней. Аага точно болезни. Возможно в тексте нужно будет <a class=\"ssilka2\" href=\"modules.php?name=page2\">выделяем любое словосочетание</a>! Здесь будет ещё <a class=\"ssilka3\" href=\"modules.php?name=page3\">Одна большая фраза</a>. И ещё полетит в космос ракета. Ракета это круто :)</p>";
?>
Сейчас скрипт выделяет (оборачивает ссылкой) самые первые по тексту разные словоформы, повторения не выделяет, а нужно чтобы ещё не выделял подряд разные словоформы с одинаковой ссылкой.
Подскажите как модифицировать код, чтобы получить результат как показано в скрипте под чертой?
|