2017-03-28 22 views
0

検索キーワードを強調表示したいのですが、ここで解決策を見つけましたが、一致する単語がハイライト表示された文字列全体を表示しています 一致する前と後で10wordだけを入力します 私は使用していますが動作しません。文字列が限定された検索語を強調表示します

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

誰かが問題を解決することができますしてください。 – Raman

答えて

0

以下のような何か...

<?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; 
?> 

...前と後のキーワードプラス10ワードをハイライトする(それを行う必要があります おそらく、よりコンパクトな選択肢があります...

サンプル入力を:。

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 

...出力...

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

その動作しません;( – Raman

+0

残念ながら、私はPHP開発者ではなく、PHP環境をテストしていません。あなたが何がうまくいかないかを教えてもらえれば、私はまだあなたを助けることができるかもしれません。 – yaccob

+0

全文がハイライトなしで表示されています – Raman

関連する問題