我试图用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
- 存有
- 坐阿梅德
- 空
- sed的
- SED enim
我想导致:
-Lorem--ipsum-悲-sit amet-, consectetur adipiscing ELIT。 Phasellus rhoncus venenatis orci sed porta。 Sed non dolor爱神。 Suspendisse a massa -sit amet- nulla egestas facilisis。 Cras fringilla,leo ac ullamcorper semper, urna eros pretium lectus,nec rhoncus ligula risus eu velit。 Nulla eu dapibus magna。 Sed vehicula tristique lacinia。 Maecenas tincidunt metus urna consequat nec congue libero iaculis。 Nulla facilisi。 Phasellus -sed- sem ut risus mattis accumsan eu -sed enim-。 Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas。关于这个问题, Vivamus lacinia euismod pretium。
任何想法?
你有什么具体问题? – Roadie57 2010-10-13 13:36:13