Conditions | 6 |
Paths | 6 |
Total Lines | 33 |
Code Lines | 18 |
Lines | 0 |
Ratio | 0 % |
Tests | 10 |
CRAP Score | 9.1595 |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
7548 | 5 | public static function str_shuffle(string $str, string $encoding = 'UTF-8'): string |
|
7549 | { |
||
7550 | 5 | if ($encoding === 'UTF-8') { |
|
7551 | 5 | $indexes = \range(0, (int) \mb_strlen($str) - 1); |
|
7552 | 5 | \shuffle($indexes); |
|
7553 | |||
7554 | // init |
||
7555 | 5 | $shuffled_str = ''; |
|
7556 | |||
7557 | 5 | foreach ($indexes as &$i) { |
|
7558 | 5 | $tmp_sub_str = \mb_substr($str, $i, 1); |
|
7559 | 5 | if ($tmp_sub_str !== false) { |
|
7560 | 5 | $shuffled_str .= $tmp_sub_str; |
|
7561 | } |
||
7562 | } |
||
7563 | } else { |
||
7564 | $encoding = self::normalize_encoding($encoding, 'UTF-8'); |
||
7565 | |||
7566 | $indexes = \range(0, (int) self::strlen($str, $encoding) - 1); |
||
7567 | \shuffle($indexes); |
||
7568 | |||
7569 | // init |
||
7570 | $shuffled_str = ''; |
||
7571 | |||
7572 | foreach ($indexes as &$i) { |
||
7573 | $tmp_sub_str = self::substr($str, $i, 1, $encoding); |
||
7574 | if ($tmp_sub_str !== false) { |
||
7575 | $shuffled_str .= $tmp_sub_str; |
||
7576 | } |
||
7577 | } |
||
7578 | } |
||
7579 | |||
7580 | 5 | return $shuffled_str; |
|
7581 | } |
||
13722 |