BASE . LOG,
'log_file_id' => $LOG_FILE_ID,
'log_per_date' => true,
]);
$byte_class = 'CoreLibs\Convert\Strings';
$PAGE_NAME = 'TEST CLASS: STRINGS CONVERT';
print "";
print "
" . $PAGE_NAME . "";
print "";
print '';
print '' . $PAGE_NAME . '
';
$split = '4-4-4';
$split_length = 4;
$test_strings = [
'13',
'1234',
'12341',
'12341234',
'123412341',
'123412341234',
'1234123412341234512345',
];
foreach ($test_strings as $string) {
print "A) Convert: $string with $split to: "
. Strings::splitFormatString($string, $split)
. "
";
try {
print "B) Convert: $string with $split_length to: "
. Strings::splitFormatStringFixed($string, $split_length)
. "
";
} catch (Exception $e) {
print "Split not possible: " . $e->getMessage() . "
";
}
}
$split = '2_2';
$split_length = 2;
$string = '1234';
print "A) Convert: $string with $split to: "
. Strings::splitFormatString($string, $split)
. "
";
print "B) Convert: $string with $split_length to: "
. Strings::splitFormatStringFixed($string, $split_length, "_")
. "
";
$split = '2-2';
$string = 'あいうえ';
try {
print "Convert: $string with $split to: "
. Strings::splitFormatString($string, $split)
. "
";
} catch (\Exception $e) {
print "Cannot split string: " . $e->getMessage() . "
";
}
print "B) Convert: $string with $split_length to: "
. Strings::splitFormatStringFixed($string, $split_length, "-")
. "
";
$string = 'ABCD12345568ABC13';
$format = '2-4_5-2#4';
$output = 'AB-CD12_34556-8A#BC13';
print "A) Convert: $string with $format to: "
. Strings::splitFormatString($string, $format)
. "
";
// try other split calls
$string = "ABCDE";
$split_length = 2;
$split_char = "-=-";
print "Convert: $string with $split_length / $split_char to: "
. Strings::splitFormatStringFixed($string, $split_length, $split_char)
. "
";
$string = "あいうえお";
$split_length = 2;
$split_char = "-=-";
print "Convert: $string with $split_length / $split_char to: "
. Strings::splitFormatStringFixed($string, $split_length, $split_char)
. "
";
$test_splits = [
'',
'2',
'2-2',
'2-3-4',
];
foreach ($test_splits as $split) {
print "$split with count: " . Strings::countSplitParts($split) . "
";
}
// check char list in list
$needle = "abc";
$haystack = "abcdefg";
print "Needle: " . $needle . ", Haysteck: " . $haystack . ": "
. DgS::prBl(Strings::allCharsInSet($needle, $haystack)) . "
";
$needle = "abcz";
print "Needle: " . $needle . ", Haysteck: " . $haystack . ": "
. DgS::prBl(Strings::allCharsInSet($needle, $haystack)) . "
";
print "Combined strings A: "
. Strings::buildCharStringFromLists(['A', 'B', 'C'], ['0', '1', '2']) . "
";
print "Combined strings B: "
. Strings::buildCharStringFromLists([['F'], ['G'], 'H'], [['5', ['6']], ['0'], '1', '2']) . "
";
$input_string = "AaBbCc";
print "Unique: " . Strings::removeDuplicates($input_string) . "
";
print "Unique: " . Strings::removeDuplicates(strtolower($input_string)) . "
";
$regex_string = "/^[A-z]$/";
print "Regex is: " . $regex_string . ": " . DgS::prBl(Strings::isValidRegex($regex_string)) . "
";
$regex_string = "'//test{//'";
print "Regex is: " . $regex_string . ": " . DgS::prBl(Strings::isValidRegex($regex_string)) . "
";
print "Regex is: " . $regex_string . ": " . DgS::printAr(Strings::validateRegex($regex_string)) . "
";
$regex_string = "/^[A-z";
print "Regex is: " . $regex_string . ": " . DgS::prBl(Strings::isValidRegex($regex_string)) . "
";
print "[A] LAST PREGE ERROR: " . preg_last_error() . " -> "
. (Strings::PREG_ERROR_MESSAGES[preg_last_error()] ?? '-') . "
";
$preg_error = Strings::isValidRegex($regex_string);
print "[B] LAST PREGE ERROR: " . preg_last_error() . " -> "
. Strings::getLastRegexErrorString() . " -> " . preg_last_error_msg() . "
";
$base_strings = [
'abcddfff',
'A-Z',
'a-z',
'A-Za-z',
'A-Df-g',
'A-D0-9',
'D-A7-0',
'A-FB-G',
'0-9',
'あ-お',
'ア-オ',
];
foreach ($base_strings as $string) {
try {
$parsed = Strings::parseCharacterRanges($string);
print "Parsed ranges for '$string': " . DgS::printAr($parsed) . "
";
} catch (\InvalidArgumentException $e) {
print "Error parsing ranges for '$string': " . $e->getMessage() . "
";
}
}
print "";
// __END__