私のテキスト内の最初の検索キーワードの前後に次のコードを使用しています(これは検索ページ用です)。切り捨ての先頭で半分になると、切り詰めの最後にある単語は切り取られません。テキスト内の検索キーワードの前に内容を切り捨てます。
例:
lients at the centre of the relationship and to offer a first class service to them, which includes tax planning, investment management and estate planning. We believe that our customer focused and...
(編集:それは時々単語から欠落している複数の文字である)
あなたはそれが顧客のオフcをみじん切りしていることがわかります。終わりではなくテキストの冒頭でのみ起こります。これをどうすれば解決できますか?私は半分そこにいると信じています。これまでコード:
function neatest_trim($content, $chars, $searchquery,$characters_before,$characters_after) {
if (strlen($content) > $chars) {
$pos = strpos($content, $searchquery);
$start = $characters_before < $pos ? $pos - $characters_before : 0;
$len = $pos + strlen($searchquery) + $characters_after - $start;
$content = str_replace(' ', ' ', $content);
$content = str_replace("\n", '', $content);
$content = strip_tags(trim($content));
$content = preg_replace('/\s+?(\S+)?$/', '', mb_substr($content, $start, $len));
$content = trim($content) . '...';
$content = strip_tags($content);
$content = str_ireplace($searchquery, '<span class="highlight" style="background: #E6E6E6;">' . $searchquery . '</span>', $content);
}
return $content;
}
$results[] = Array(
'text' => neatest_trim($row->content,200,$searchquery,120,80)
);
コンテンツの先頭には常に1文字だけありますか? –
必ずしもそうではありません。ときどき1つ以上 – hairynuggets
私は、あなたは基本的に検索キーワードの後に120文字、80文字を残していると思う? –