Ben arama sonuçlarını vurgulamak için çalışıyorum ama parça etiketleri ile sınırlıdır çevreleyen metni dahil etmek istiyoruz.
$ Dönem "cool" Yani preg_replace ile bitmelidir:
<div><span style="background: #f00">My hair cut so cool!</span></div>
Ne yazık ki benim regex çevreleyen metni, sadece $ dönem yakalamak için görünmüyor. Çevredeki etiketleri geçerli etiketinin her türlü olabilir.
0:
1: $term = 'cool';
2: ob_start();
3:
10: foreach($items as $item) {
11: // echoing results here
12: echo '<div>' . $item->text . '</div>';
13: }
30: $content = ob_get_contents();
31: ob_clean() ;
32:
33: $pattern = "/(?<!<[^>])($term)/i";
34: $replace = "<span style=\"background: #f00\">$1</span>";
35: echo preg_replace($pattern, $replace, $content);
36:
EDIT: foreach döngüsü birçok biridir ve ayrı bir sınıfta yer almaktadır. Bu nedenle ben döngü kendisi değiştirme yapamaz. Ayrıca bu veriler üzerinde nihai çıkış yerine, her bir döngü işlemek için daha etkili görünmektedir.