Conditions | 6 |
Paths | 6 |
Total Lines | 33 |
Code Lines | 18 |
Lines | 0 |
Ratio | 0 % |
Tests | 3 |
CRAP Score | 8.304 |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
7528 | public static function str_shuffle(string $str, string $encoding = 'UTF-8'): string |
||
7529 | { |
||
7530 | if ($encoding === 'UTF-8') { |
||
7531 | $indexes = \range(0, (int) \mb_strlen($str) - 1); |
||
7532 | \shuffle($indexes); |
||
7533 | |||
7534 | 5 | // init |
|
7535 | $shuffled_str = ''; |
||
7536 | |||
7537 | foreach ($indexes as &$i) { |
||
7538 | $tmp_sub_str = \mb_substr($str, $i, 1); |
||
7539 | if ($tmp_sub_str !== false) { |
||
7540 | $shuffled_str .= $tmp_sub_str; |
||
7541 | } |
||
7542 | } |
||
7543 | } else { |
||
7544 | $encoding = self::normalize_encoding($encoding, 'UTF-8'); |
||
7545 | |||
7546 | $indexes = \range(0, (int) self::strlen($str, $encoding) - 1); |
||
7547 | \shuffle($indexes); |
||
7548 | |||
7549 | // init |
||
7550 | $shuffled_str = ''; |
||
7551 | |||
7552 | foreach ($indexes as &$i) { |
||
7553 | $tmp_sub_str = self::substr($str, $i, 1, $encoding); |
||
7554 | 18 | if ($tmp_sub_str !== false) { |
|
7555 | $shuffled_str .= $tmp_sub_str; |
||
7556 | } |
||
7557 | } |
||
7558 | } |
||
7559 | |||
7560 | 18 | return $shuffled_str; |
|
7561 | 7 | } |
|
13757 |