diff --git a/mod/wiki/classes/external.php b/mod/wiki/classes/external.php index 4a147559517..b51d41bcaf2 100644 --- a/mod/wiki/classes/external.php +++ b/mod/wiki/classes/external.php @@ -512,10 +512,14 @@ class mod_wiki_external extends external_api { $retpage['contentformat'] = $contentformat; } else { // Return the size of the content. - if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)) { - $retpage['contentsize'] = mb_strlen($cachedcontent, '8bit'); - } else { - $retpage['contentsize'] = strlen($cachedcontent); + $retpage['contentsize'] = strlen($cachedcontent); + // TODO: Remove this block of code once PHP 8.0 is the min version supported. + // For PHP < 8.0, if strlen() was overloaded, calculate + // the bytes using mb_strlen(..., '8bit'). + if (PHP_VERSION_ID < 80000) { + if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)) { + $retpage['contentsize'] = mb_strlen($cachedcontent, '8bit'); + } } } diff --git a/mod/wiki/tests/externallib_test.php b/mod/wiki/tests/externallib_test.php index 324f8d69d79..7e762a3fc0f 100644 --- a/mod/wiki/tests/externallib_test.php +++ b/mod/wiki/tests/externallib_test.php @@ -644,10 +644,14 @@ class externallib_test extends externallib_advanced_testcase { // Check that WS doesn't return page content if includecontent is false, it returns the size instead. foreach ($expectedpages as $i => $expectedpage) { - if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)) { - $expectedpages[$i]['contentsize'] = mb_strlen($expectedpages[$i]['cachedcontent'], '8bit'); - } else { - $expectedpages[$i]['contentsize'] = strlen($expectedpages[$i]['cachedcontent']); + $expectedpages[$i]['contentsize'] = strlen($expectedpages[$i]['cachedcontent']); + // TODO: Remove this block of code once PHP 8.0 is the min version supported. + // For PHP < 8.0, if strlen() was overloaded, calculate + // the bytes using mb_strlen(..., '8bit'). + if (PHP_VERSION_ID < 80000) { + if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)) { + $expectedpages[$i]['contentsize'] = mb_strlen($expectedpages[$i]['cachedcontent'], '8bit'); + } } unset($expectedpages[$i]['cachedcontent']); unset($expectedpages[$i]['contentformat']);