Выделите несколько слов в строке и удалите несколько не выделенных слов - PullRequest
0 голосов
/ 31 октября 2009

Я создаю поисковую систему. В настоящее время мой скрипт выделяет подходящие слова из ключевого слова. Но некоторые ключевые слова слишком длинные, например, результаты для шах рух хан :

25216d1235653089 шахрух хан с обои шах рух актер

Как видите, указанное выше ключевое слово слишком длинное. Итак, мне нужно, чтобы это было похоже на

Шахрух Кхан s обои

или

шах рух актер


В настоящее время я использую следующий код, но он требует пробела до и после полужирного тега. Таким образом, если 1-е слово выделено жирным шрифтом, оно отображает целое ключевое слово.

if(strlen($img_keyword)>30){
    $img_keyword = preg_replace('/(.*?) <b>(.*?)<\/b> (.*?)/us',
      " <b>$2</b> ",
      $img_keyword);
}

Есть ли способ сделать / исправить это?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2009

После Franz я отредактировал свой код, как я уже упоминал ниже.

 $img_keyword = boldText($query, $img_keyword);
 if(strlen($img_keyword)>30){
 $img_keyword = preg_replace('/^(.*?)<b>(.*?)<\/b>(.*?)/u',"<b> $2 </b>",$img_keyword);
     }
if(strlen($img_keyword)>30){
$img_keyword = preg_replace('/<\/b>(.*?)<b>/x'," ",$img_keyword);
   }
if(strlen($img_keyword)>30){
$img_keyword = preg_replace('/<\/b>(.*?)$|(.*?)<b>$/x',"</b> ",$img_keyword);
 }

Если ключевые слова

Kajol Shah Rukh Vogue Индия Блюмарин

результат

Шахрукх


Если ключевое слово

p 18 mFEk4J448M tagsadt 0% 2Clanguage en% 2Cposttag feroz khan% 2Cposttag khan умер 27 апреля% 2Cposttag не более% 2Cposttag значок стиля из Болливуда

результат

хан хан


Есть ли способ сохранить одно или два не выделенных слова и удалить другие?

0 голосов
/ 02 ноября 2009

Ну, насколько я вижу, вам не нужны пробелы спереди и после полужирного текста, так почему бы просто не удалить пробел, добавить начальную привязку в начале и конечную привязку в конец шаблона? Как это:

$img_keyword = preg_replace('/^(.*?)<b>(.*?)<\/b>(.*?)$/us'," <b>$2</b> ",$img_keyword);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...