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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: подсветка ключевых слов поискового запроса

Сообщения:  [1-10]    [11-20]  [21-23] 

 
 автор: Loki   (26.01.2009 в 10:34)   письмо автору
 
   для: Trianon   (26.01.2009 в 01:44)
 

Все ждал кто же предложит этот вариант:)

  Ответить  
 
 автор: Рома   (26.01.2009 в 10:27)   письмо автору
 
   для: Trianon   (26.01.2009 в 01:44)
 

с ошибкой разобрался, был не внимателен просто.

только вот почему не выделяет слово "продаются" при запросе "продаю"?
наверное нужно искать в сообщении и выделять последовательность букв, а не слово целиком?

  Ответить  
 
 автор: Trianon   (26.01.2009 в 01:44)   письмо автору
 
   для: Trianon   (26.01.2009 в 00:43)
 

<style type="text/css">
 span.select{ color: #E02020 }
</style>
<?php

$var 
file_get_contents(__FILE__);
$arr = array('select''span');

$pattern '#('.implode('|'array_map('preg_quote'$arr)).')#';
$src 0;
$res '';

if(
preg_match_all($pattern$var$mPREG_OFFSET_CAPTURE))
  foreach(
$m[0] as $v)
  {
     if(
$v[1] > $src)
          
$res .= htmlspecialchars(substr($var$src$v[1]-$src));

     
$src $v[1] + strlen($v[0]);
     
$res .= '<span class="select">'.htmlspecialchars($v[0]).'</span>';
  }
$res .= htmlspecialchars(substr($var$src));

echo
'<pre>'.$res.'</pre>';

?>

Сырец.
Наверняка, этот код можно написать и поаккуратнее.

  Ответить  
 
 автор: Trianon   (26.01.2009 в 00:43)   письмо автору
 
   для: nikita2206   (26.01.2009 в 00:40)
 

Да я вообще то заглянул и в html-код , хотя имел право этого не делать.
слова остались невыделенными.

  Ответить  
 
 автор: nikita2206   (26.01.2009 в 00:40)   письмо автору
 
   для: Trianon   (26.01.2009 в 00:33)
 

если б не запускал не давал бы, ты исходный код смотри, а не рендер... все работает отлично... а то что вы пугаетесь длинных кодов, это ваша проблема...

  Ответить  
 
 автор: Trianon   (26.01.2009 в 00:33)   письмо автору
 
   для: nikita2206   (25.01.2009 в 23:48)
 

Скажите честно, Вы его запускали?
А лучше не говорите ничего, ей-богу...

  Ответить  
 
 автор: nikita2206   (25.01.2009 в 23:48)   письмо автору
 
   для: Trianon   (25.01.2009 в 19:16)
 

держи


<?php 
$var 
file_get_contents(__FILE__);
$text 'dsjksdhfjkdhsfjkhdjk nra span j aksnd najsdbj kbsajkdjbfsd sdf hsdgsdhfgs hdgfsdfgdshfg sdfgh dsgfysdgfhsd';
$replace = array(
'A' => '&#65;',
'B' => '&#66;',
'C' => '&#67;',
'D' => '&#68;',
'E' => '&#69;',
'F' => '&#70;',
'G' => '&#71;',
'H' => '&#72;',
'I' => '&#73;',
'J' => '&#74;',
'K' => '&#75;',
'L' => '&#76;',
'M' => '&#77;',
'N' => '&#78;',
'O' => '&#79;',
'P' => '&#80;',
'Q' => '&#81;',
'R' => '&#82;',
'S' => '&#83;',
'T' => '&#84;',
'U' => '&#85;',
'V' => '&#86;',
'W' => '&#87;',
'X' => '&#88;',
'Y' => '&#89;',
'Z' => '&#90;',
'a' => '&#97;',
'b' => '&#98;',
'c' => '&#99;',
'd' => '&#100;',
'e' => '&#101;',
'f' => '&#102;',
'g' => '&#103;',
'h' => '&#104;',
'i' => '&#105;',
'j' => '&#106;',
'k' => '&#107;',
'l' => '&#108;',
'm' => '&#109;',
'n' => '&#110;',
'o' => '&#111;',
'p' => '&#112;',
'q' => '&#113;',
'r' => '&#114;',
's' => '&#115;',
't' => '&#116;',
'u' => '&#117;',
'v' => '&#118;',
'w' => '&#119;',
'x' => '&#120;',
'y' => '&#121;',
'z' => '&#122;'
);
$arr = array('span''select');
$i 0;
while(isset(
$arr[$i])){
    if(
strlen($arr[$i]) > 2){
        
$word strtr($arr[$i], $replace);
        
$var preg_replace('/[^<]([[\w+][^"=]]*)'.$arr[$i].'.[^>]/''<span class="select">'.$word.'</span>'$var);
    }
    
$i++;
}
echo 
$var;

?>

  Ответить  
 
 автор: nikita2206   (25.01.2009 в 23:37)   письмо автору
 
   для: Trianon   (25.01.2009 в 19:16)
 

щас голова болит... завтра наверн чтонить придумаю...
пока токо массив с шестнадцатиричным представлением символов в хтмл наваял

пс. с вашим подхом канеш, таак можно и любой сайт с обработчиком бб кодов сломать

  Ответить  
 
 автор: Trianon   (25.01.2009 в 19:16)   письмо автору
 
   для: nikita2206   (25.01.2009 в 19:04)
 

Работающего кода я так и не увидел.

В базе данных теги не хранятся.
Там хранится текст.
Текст вполне может быть и такой, как в этом примере.

  Ответить  
 
 автор: nikita2206   (25.01.2009 в 19:08)   письмо автору
 
   для: nikita2206   (25.01.2009 в 19:04)
 

пс вобщем тут задача несложная, если в базе данных небудет хтмл тегов.... конечно надо все это до ума довести, возможно даже взять "базу" всех существующих хтмл тегов, чтоб неполучилось подмены имен тегов, простите за тафтологию

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-23] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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