J'essaye d'emballer les mots et la séquence de mots d'une liste donnée avec preg_replace. Cela fonctionne presque, mais il y a des cas d'utilisation qui ne le sont pas et je n'arrive pas à comprendre comment.Comment faire pour envelopper des mots ou des séquences de mots qui n'ont pas déjà été enveloppés?
Par exemple, je fais ceci:
// 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);
}
A partir de cette liste de mots clés:
- lorem
- ipsum
- sit amet
- null
- sed
- enim sed
Je voudrais entraîner:
-Lorem--ipsum- dolor -sit amet-, consectetur adipiscing elit. Phasellus rhoncus venenatis orci sed porta. Sed non dolor eros. Suspendisse a massa -sit amet- nulla egestas facilisis. Cras fringilla, leo ac ullamcorper sempre, urne eros pretium lectus, nec rhoncus ligula risus eu velit. Nulla eu dapibus magna. Sed vehicula tristique lacinia. Mécène tincidunt metus au urna consequat nec congue libero iaculis. Nulla facilisi. Phasellus -sed- sutus matus accumsan eu -sed enim-. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse id est velit, eu cursus quam. Vivamus lacinia euismod pretium.
Des idées?
Quel est le problème spécifique que vous rencontrez? – Roadie57