Conditions | 6 |
Paths | 6 |
Total Lines | 33 |
Code Lines | 18 |
Lines | 0 |
Ratio | 0 % |
Tests | 9 |
CRAP Score | 9.7518 |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
7501 | public static function str_shuffle(string $str, string $encoding = 'UTF-8'): string |
||
7502 | { |
||
7503 | 5 | if ($encoding === 'UTF-8') { |
|
7504 | 5 | $indexes = \range(0, (int) \mb_strlen($str) - 1); |
|
7505 | 5 | \shuffle($indexes); |
|
7506 | |||
7507 | // init |
||
7508 | 5 | $shuffled_str = ''; |
|
7509 | |||
7510 | 5 | foreach ($indexes as &$i) { |
|
7511 | 5 | $tmp_sub_str = \mb_substr($str, $i, 1); |
|
7512 | 5 | if ($tmp_sub_str !== false) { |
|
7513 | 5 | $shuffled_str .= $tmp_sub_str; |
|
7514 | } |
||
7515 | } |
||
7516 | } else { |
||
7517 | $encoding = self::normalize_encoding($encoding, 'UTF-8'); |
||
7518 | |||
7519 | $indexes = \range(0, (int) self::strlen($str, $encoding) - 1); |
||
7520 | \shuffle($indexes); |
||
7521 | |||
7522 | // init |
||
7523 | $shuffled_str = ''; |
||
7524 | |||
7525 | foreach ($indexes as &$i) { |
||
7526 | $tmp_sub_str = self::substr($str, $i, 1, $encoding); |
||
7527 | if ($tmp_sub_str !== false) { |
||
7528 | $shuffled_str .= $tmp_sub_str; |
||
7529 | } |
||
7530 | } |
||
7531 | } |
||
7532 | |||
7533 | 5 | return $shuffled_str; |
|
7534 | } |
||
13693 |