Я пытаюсь обернуть слова и последовательность слов из заданного списка с помощью preg_replace. Это почти работает, но есть некоторые варианты использования, которые это не делает, и я не могу понять это как.
Например, я делаю это:
// sort by descending length
usort($this->_keywords, function($a,$b){return(strlen($a)<strlen($b));});
// wrapper is -%string%-
foreach ($this->_keywords as $keyword) {
$value = preg_replace('/((?!-)' . $keyword . '(?!-))/i', str_replace('%string%', '\1', $this->_wrapper), $value);
}
Из этого списка ключевых слов:
- Lorem
- Ipsum
- сит амет
- пустой
- 1017 * СЭД *
- sed enim
Я бы хотел получить:
-Lorem- -ipsum- dolor -sit amet- ,
Concectetur Adipiscing Elit. Phasellus
rhoncus venenatis orci sed porta. Sed
не долор эрос. Suspendisse Масса
-сайт амет- nulla egestas facilisis. Крас
fringilla, leo ac ullamcorper semper,
урна эрос претиум лектус
ligula risus eu Velit. Нулла ес
дапибус магна. Sed Vehicleula tristique
лациния. Меценат опоясывающий лишай метус в
урна конквестат nec congue libero
iaculis. Nulla facilisi. Phasellus -sed-
sem ut risus mattis accumsan eu -sed
enim- . Местный житель морби
трилистик сенектус и нетус эт
malesuada fames ac turpis egestas.
Suspendisse ID Est Velit, ЕС Курсус
Ква. Vivamus Lacinia Euismod Pretium.
Есть идеи?