Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подсветка слов
 
 автор: Night_Wolf   (22.05.2007 в 14:59)   письмо автору
 
 

Приветствую,
может найдеться добрый человек кто подскажет (или ссылку ткнет) на регулярное выражение для подсветки нужных слов в строке?

preg_replace("/word1|word2|word3/i", "<b>\\0</b>", $string);

Проблема в том, что в строке могут содержаться теги ссылок <a href="http://la-la-la/word2/la-la-la">. Других тегов нет. Как бы так модифицировать его, чтоб не лезло в <a>?

   
 
 автор: Loki   (22.05.2007 в 18:06)   письмо автору
 
   для: Night_Wolf   (22.05.2007 в 14:59)
 

http://softtime.ru/forum/read.php?id_forum=1&id_theme=37610&page=4
тут я приводил код для обработки слов вне тегов. В этом случае он тоже должен подойти.

   
 
 автор: Night_Wolf   (23.05.2007 в 12:13)   письмо автору
 
   для: Loki   (22.05.2007 в 18:06)
 

Спасибо, Loki.

Модифицировал под свои нужды:

$text='<a href="http://www.siteingine.com.ua/aboutyourself.shtml">very cool word for show</a>';

$fined_pattern = "very|word";

function higlight_text($match, $fined_pattern)
{
    $match[1]=preg_replace('/'.$fined_pattern.'/i', '<b>\\0</b>', $match[1]);
    return $match[1].$match[2];
}

$text=preg_replace_callback('#([^<>]*)(<[^>]+>)?#', higlight_text, $text);
echo $text;


Только мне надо в функцию еще передать значение $fined_pattern. Это можно сделать прямо из preg_replace_callback как-нибуть?

   
 
 автор: Loki   (23.05.2007 в 15:25)   письмо автору
 
   для: Night_Wolf   (23.05.2007 в 12:13)
 

самый простой вариант
<?
//...
$fined_pattern "very|word";

function 
higlight_text($match)

   global 
$fined_pattern;
//...

   
 
 автор: Night_Wolf   (23.05.2007 в 16:45)   письмо автору
 
   для: Loki   (23.05.2007 в 15:25)
 

Спасибо, все супер!

   
 
 автор: Night_Wolf   (23.05.2007 в 16:51)   письмо автору
 
   для: Night_Wolf   (23.05.2007 в 16:45)
 

Еще раз спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования