From 552fb9720ebba066b9b983a6415f7195e123216b Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Tue, 28 Nov 2017 23:46:09 +0100 Subject: Bugfix: The "excerpt" function had returned a string with unnecessary whitespace between the truncated text and the $replace string ("[…]") if the truncated text from the regular expression had contained whitespace at the end (before it was concatenated with $replace). This issue has been fixed by passing the truncated text directly after truncation to the "trim" function (before the truncated text is concatenated with $replace). In addition, the now unnecessary "trim" call within the "excerpt" function has been removed. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/functions.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'core') diff --git a/core/functions.php b/core/functions.php index 6ef8894..1f7bfbb 100644 --- a/core/functions.php +++ b/core/functions.php @@ -232,7 +232,9 @@ function getRandomValue($length = 40): string { #=============================================================================== function cut($string, $length, $replace = ' […]') { if(mb_strlen($string) > $length) { - return preg_replace("/^(.{1,{$length}}\\b).*/su", "\\1{$replace}", $string); + return preg_replace_callback("/^(.{1,{$length}}\\b).*/su", function($match) { + return trim($match[1]); + }, $string).$replace; } return $string; @@ -245,7 +247,6 @@ function excerpt($string, $length = 500, $replace = ' […]') { $string = removeHTML($string); $string = removeDoubleLineBreaks($string); $string = cut($string, $length, $replace); - $string = trim($string); $string = nl2br($string); return $string; -- cgit v1.2.3