forked from museum-digital/MD_STD
Add clsas for MD_STD_STRINGS more obscure string operations
This commit is contained in:
39
src/MD_STD_STRINGS.php
Normal file
39
src/MD_STD_STRINGS.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?PHP
|
||||
/**
|
||||
* Gathers wrappers for handling strings.
|
||||
*/
|
||||
declare(strict_types = 1);
|
||||
|
||||
/**
|
||||
* Encapsulates functions for handling strings.
|
||||
*/
|
||||
final class MD_STD_STRINGS {
|
||||
/**
|
||||
* Duplicates words ending in a given set of strings (e.g. dots) that serve as bind chars
|
||||
* to allow indexing to then allow searching for them in either form.
|
||||
*
|
||||
* @param string $input Input string.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function duplicate_words_with_dots_for_indexing(string $input):string {
|
||||
|
||||
$charsToDuplicateOn = ',.!-';
|
||||
|
||||
$wordsToAdd = [];
|
||||
$words = explode(' ', $input);
|
||||
foreach ($words as $word) {
|
||||
$trimmed = trim($word, $charsToDuplicateOn);
|
||||
if ($trimmed !== $word) {
|
||||
$wordsToAdd[] = $trimmed;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($wordsToAdd)) {
|
||||
return $input;
|
||||
}
|
||||
|
||||
return $input . ' ' . implode(' ', $wordsToAdd);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -62,7 +62,7 @@ final class MD_STD_TEST_PROVIDERS {
|
||||
/**
|
||||
* Data provider for working mail addresses.
|
||||
*
|
||||
* @return array<array{0: string, 1: string}>
|
||||
* @return array<array{0: string}>
|
||||
*/
|
||||
public static function invalid_email_provider():array {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user