Conditions | 4 |
Paths | 4 |
Total Lines | 28 |
Code Lines | 14 |
Lines | 0 |
Ratio | 0 % |
Tests | 14 |
CRAP Score | 4.0047 |
Changes | 0 |
1 | <?php |
||
6675 | 8 | public static function str_insert( |
|
6676 | string $str, |
||
6677 | string $substring, |
||
6678 | int $index, |
||
6679 | string $encoding = 'UTF-8' |
||
6680 | ): string { |
||
6681 | 8 | if ($encoding === 'UTF-8') { |
|
6682 | 4 | $len = (int) \mb_strlen($str); |
|
6683 | 4 | if ($index > $len) { |
|
6684 | return $str; |
||
6685 | } |
||
6686 | |||
6687 | /** @noinspection UnnecessaryCastingInspection */ |
||
6688 | 4 | return (string) \mb_substr($str, 0, $index) . |
|
6689 | 4 | $substring . |
|
6690 | 4 | (string) \mb_substr($str, $index, $len); |
|
6691 | } |
||
6692 | |||
6693 | 4 | $encoding = self::normalize_encoding($encoding, 'UTF-8'); |
|
6694 | |||
6695 | 4 | $len = (int) self::strlen($str, $encoding); |
|
6696 | 4 | if ($index > $len) { |
|
6697 | 1 | return $str; |
|
6698 | } |
||
6699 | |||
6700 | 3 | return ((string) self::substr($str, 0, $index, $encoding)) . |
|
6701 | 3 | $substring . |
|
6702 | 3 | ((string) self::substr($str, $index, $len, $encoding)); |
|
6703 | } |
||
14614 |