2017-03-28 3 views
0

Ich möchte das Schlüsselwort gesucht markieren, fand ich die Lösung hier, aber es zeigt ganze Zeichenfolge mit passendem Wort markiert Ich möchte nur 10Word nach und vor dem Spiel Das ist was Ich benutze aber funktioniert nichtMarkieren Sie die gesuchten Wörter mit begrenzten Wörtern von String

$text = preg_replace("/^.*?(.{0,1})\b($keyword)\b(.{0,1}).*?$/i", '\1<span class="highlight">\2</span>\3', $text); 
echo $text ; 
+0

Kann jemand bitte das Problem beheben. – Raman

Antwort

0

Jetzt mit PHP getestet. So etwas wie ...

<?php 
$src = 'twelve eleven ten nine eight seven six five four three two one KEYWORD one two three four five six seven eitht nine ten eleven twelve'; 
$keyword = "KEYWORD"; 
$regex = "/(.*?)((\w+\W+){0,10})($keyword\W+)((\w+\W+){0,10})(.*)/i"; 
$text = preg_replace("$regex", '\1<span class="highlight">\2\4\5</span>\7', $src); 
echo $text; 
?> 

... sollte es tun (Hervorhebung das Schlüsselwort plus 10 Wörter vor und nach Wahrscheinlich gibt es kompaktere Alternativen ...

Probeneingang:.

twelve eleven ten nine eight seven six five four three two one KEYWORD one two three four five six seven eitht nine ten eleven twelve 

... Ausgänge ...

twelve eleven <span class="highlight">ten nine eight seven six five four three two one KEYWORD one two three four five six seven eitht nine ten </span>eleven twelve 
+0

funktioniert nicht; ( – Raman

+0

) Leider bin ich kein PHP-Entwickler und habe keine PHP-Umgebung, um es zu testen. Wenn Sie mich wissen lassen, was schief läuft, kann ich Ihnen vielleicht immer noch helfen. – yaccob

+0

Der ganze Text zeigt ohne Highlights – Raman

Verwandte Themen