diff --git a/src/SearchWordHighlighter.php b/src/SearchWordHighlighter.php
index 41d0971..ff9b17b 100644
--- a/src/SearchWordHighlighter.php
+++ b/src/SearchWordHighlighter.php
@@ -87,10 +87,12 @@ public function highlight($words)
$words = preg_split('/[ ,\.\?\-]/s', trim($words, ' ,.?+-'));
}
- $words = array_filter($words, function($word){
+ $words = array_filter($words, function ($word) {
return strlen($word) > 1;
});
+ // replace chained whitespace with a single space
+ $string = preg_replace('/[\s]+/s', ' ', $this->string);
$string = $this->string;
if ($this->wordsBeforeMatch > 0) {
@@ -125,13 +127,12 @@ public function cutBeforeMatch($content, $words)
// look for the position of the first search word
$startPosition = mb_strpos($content, $contentWord);
-
for ($i = 1; $i <= $this->wordsBeforeMatch; $i++) {
if (isset($contentWords[$key - $i])) {
$startPosition -= mb_strlen($contentWords[$key - $i]) + 1;
}
}
- $content = $this->prefix . trim(substr($content, $startPosition));
+ $content = $this->prefix . trim(mb_substr($content, $startPosition));
break;
}
}
diff --git a/tests/Unit/SearchWordHighlighterTest.php b/tests/Unit/SearchWordHighlighterTest.php
index d9d4d72..3011d84 100644
--- a/tests/Unit/SearchWordHighlighterTest.php
+++ b/tests/Unit/SearchWordHighlighterTest.php
@@ -142,6 +142,16 @@ public function getSomeHighlightingTestValues()
'wordsBeforeMatch' => 3,
'expecation' => 'Lorem ipsum TÜV sit amet, consectetur...',
),
+ array(
+ 'string' => ' Resultater/løsninger igennem samarbejdeI Gothia håndterer vi både private og erhvervsdebitorer med at afvikle deres gæld på den bedste og hurtigste måde, så både vores kunder og debitorer er tilfredse med vores løsninger.Ved at have en god dialog med debitorerne, kan vi vurdere debitorernes vilje til at betale og deres betalingsevne. Sammen med vores scoringsmodel, finder vi den bedste løsning for alle og herved sikre jer et højt inddrivelsesniveau.I vores grundige samarbejde med debitorerne, finder vi den rette betalingsløsning, så vi værner om jeres brand og øger kundetilfredsheden.Gothia Debt Collection er en del af Arvato Financial Solutions, og vores inkassoløsning er inkluderet i vores portefølje af løsninger, der dækker hele kundens livscyklus: fra risikostyring og fakturering til factoring og inkasso. Læs mere om factoring og vores fakturering og rykkerservice her. Vil du vide mere om vores inkassoløsninger, så klik her Vil I tale med vores ekspert? Susan Nymann Send en mail til Susan Nymann Vi har hjulpet mange mennesker med at få overblik over deres gæld. Sådan hjalp vi Telenor Sådan hjalp vi Telenor Telenor Norge er e succesfuldt ”business case” på at finde balance mellem at inddrive gæld og fastholde værdifulde kunder. Derfor sammenligner de Arvatos resultater med andre inkassobureauer, hvor Arvato konstant ligger højest. Vil du vide mere om Telenors og Arvatos samarbejde for bedre inkassoinddrivelse? Vores inkassoløsningertil jeres virksomhed Vores inkassoløsningertil jeres virksomhed ',
+ 'words' => "debt",
+ 'wrap' => '|',
+ 'crop' => 3,
+ 'prefix' => '...',
+ 'suffix' => '...',
+ 'wordsBeforeMatch' => 1,
+ 'expecation' => '...kundetilfredsheden.Gothia Debt Collection...',
+ )
);
}
}