добавить HTML-теги в переменную строку - PullRequest
0 голосов
/ 22 декабря 2010

допустим, скажем

$keyword = obama
$result = "US President Barack Obama on Wednesday signed a landmark law"

Как сделать так, чтобы ключевое слово $ каждый раз появлялось внутри $ result, оно заменяет ключевое слово $ на теги <strong></strong>?

str_replace не работаетпотому что, если ключевое слово указано в нижнем регистре, а результат - в верхнем регистре, он не заменит его.

Спасибо

edit: нашел ответ, в случае, если это кому-нибудь нужно, это код

$myWords = array($keyword);
function boldText($arrWords, $strSubject)
{
     if (!is_array($arrWords)) return;
     foreach ($arrWords as $strWord)
     {
          $strSubject = preg_replace('@(' . preg_quote($strWord, '@') . ')@i', "<b>\\1</b>", $strSubject);
     }
     return $strSubject;
}

Ответы [ 4 ]

1 голос
/ 22 декабря 2010
str_replace (ucfirst($keyword), "<strong>" . $keyword . "</strong">, $result);

или используйте регулярное выражение с учетом регистра.

0 голосов
/ 22 декабря 2010

Я уверен, что, возможно, есть другие методы, но я бы использовал preg_replace (). Что-то вроде:

$result = preg_replace($keyword , "<strong>$keyword</strong>" , $result);
0 голосов
/ 22 декабря 2010

Вы можете использовать str_replace:

str_replace ( mixed $keyword, mixed '<strong>' . $keyword . '</strong>', mixed $result)

Это заменит ключевое слово $ на себя, окруженное тегами <strong>.

0 голосов
/ 22 декабря 2010
<?php
function boldText($string, $array) {
  $string = strip_tags($string);
  return preg_replace('~('.implode('|', $array).'[a-zA-Z]{0,45})(?![^<]*[>])~is', '<strong>$0</strong>', $string );
}
?>

от http://php.bigresource.com/bold-string-from-array-of-keywords-HLRL2A8c.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...