Merge pull request #18400 from nextcloud/backport/18302/stable16

[stable16] Fix comments search result to work with multibyte strings
This commit is contained in:
Roeland Jago Douma 2019-12-19 10:18:27 +01:00 committed by GitHub
commit d85782706d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -80,12 +80,12 @@ class Result extends BaseResult {
* @throws NotFoundException
*/
protected function getRelevantMessagePart(string $message, string $search): string {
$start = stripos($message, $search);
$start = mb_stripos($message, $search);
if ($start === false) {
throw new NotFoundException('Comment section not found');
}
$end = $start + strlen($search);
$end = $start + mb_strlen($search);
if ($start <= 25) {
$start = 0;
@ -95,15 +95,15 @@ class Result extends BaseResult {
$prefix = '…';
}
if ((strlen($message) - $end) <= 25) {
$end = strlen($message);
if ((mb_strlen($message) - $end) <= 25) {
$end = mb_strlen($message);
$suffix = '';
} else {
$end += 25;
$suffix = '…';
}
return $prefix . substr($message, $start, $end - $start) . $suffix;
return $prefix . mb_substr($message, $start, $end - $start) . $suffix;
}
}