String split format fix for non ascii characters

Currently just abort and return string as is
This commit is contained in:
Clemens Schwaighofer
2022-07-29 10:38:32 +09:00
parent 1795d3ba6c
commit 7e6474195b
3 changed files with 22 additions and 1 deletions

View File

@@ -97,7 +97,13 @@ final class CoreLibsConvertStringsTest extends TestCase
'2-2',
null,
'12--3-4'
]
],
'mutltibyte string' => [
'あいうえ',
'2-2',
null,
'あいうえ'
],
];
}

View File

@@ -64,6 +64,13 @@ $string = '1234';
print "Convert: $string with $split to: "
. \CoreLibs\Convert\Strings::splitFormatString($string, $split)
. "<br>";
$split = '2-2';
$string = 'あいうえ';
print "Convert: $string with $split to: "
. \CoreLibs\Convert\Strings::splitFormatString($string, $split)
. "<br>";
// error message
print $log->printErrorMsg();

View File

@@ -35,6 +35,14 @@ class Strings
if (empty($split_format)) {
return $value;
}
// if not in the valid ASCII character range
// might need some tweaking
if (preg_match('/[^\x20-\x7e]/', $value)) {
return $value;
}
// if (!mb_check_encoding($value, 'ASCII')) {
// return $value;
// }
$split_list = preg_split(
// allowed split characters
"/([" . $split_charcters . "]{1})/",