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

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

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

 

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

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

тема: найти имя тега HTML
 
 автор: azusr   (26.01.2009 в 00:02)   письмо автору
 
 

но не включая в результат поиска окружающие его угловые скобки. заранее спс.

  Ответить  
 
 автор: AcidTrash   (26.01.2009 в 21:53)   письмо автору
 
   для: azusr   (26.01.2009 в 00:02)
 

>найти имя тега HTML
>но не включая в результат поиска окружающие его угловые скобки. заранее спс.

А что подрузамевается под именем тега HTML?
Если в тексте встретиться к примеру <ya> это будет тег HTML?

  Ответить  
 
 автор: azusr   (27.01.2009 в 00:36)   письмо автору
 
   для: AcidTrash   (26.01.2009 в 21:53)
 

извините я не правильно задал вопрос. точнее мне нужен поиск в бд и подсветка совпадений. и по моему это надо делать с регулярными выражениями. вот потому я сюда и обращаюсь.
значит так. через переменную $_GET['search'] получаю искомую фразу, отфильтровываю. далее ищу те фразы которые не входят в угловые скобки. пример:
урл: ?search=img
строка1: img test img
строка2: <img src="img.gif" alt="" /> test
строка3: img <img src="img.gif" alt="" /> test
в результате совпадение есть в строках 1 и 3. строка1 понятно почему. в строке 2 img есть но так как оба находятся внутри угловых скобках срока2 не включается. и в строке 3 только одно совпадение, потому что остальные две находятся внутри угловых скобках.
и точно также при подсветке. если фраза не находится внутри угловых скобках то надо ее подсвечивать.
теперь мне нужен шаблон для re который найдет те фразы которые не входят в угловые скобки.

  Ответить  
 
 автор: xx7   (27.01.2009 в 19:33)
 
   для: azusr   (27.01.2009 в 00:36)
 

Лучше-бы попробовать подсветить слова до того как к тексту полученному из базы добавляются теги.
, если есть такая возможность.
а так легче найти теги , чем то что не в них.
можно просто сделать
$txt = preg_replace_callback('#(<)[^>]*>\s*|[^<]+#', 'slova', $txt);

А в функции slova() возвращать просто всё совпадение $match[0] если было $match[1],
или например return preg_replace('#\b'. preg_quote($searchword) .'\b#', '<b>$0</b>', $match[0])
, если не было $match[1]

  Ответить  
 
 автор: azusr   (28.01.2009 в 03:06)   письмо автору
 
   для: xx7   (27.01.2009 в 19:33)
 

спс вам.
function highlight($text, $query)
{
 preg_match_all('/(<)[^<>]*>\s*|[^<>]+/is', $text, $matches, PREG_SET_ORDER);
 $text = '';
 for ($i = 0; isset($matches[$i]); $i++)
  $text .= !isset($matches[$i][1])? preg_replace('/'.preg_quote($query, '/').'/is', '<span class="highlight">$0</span>', $matches[$i][0]): $matches[$i][0];
 return $text;
}

  Ответить  
Rambler's Top100
вверх

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