Conditions | 4 |
Paths | 4 |
Total Lines | 28 |
Code Lines | 14 |
Lines | 0 |
Ratio | 0 % |
Tests | 13 |
CRAP Score | 4.0058 |
Changes | 0 |
1 | <?php |
||
6109 | public static function str_insert( |
||
6110 | string $str, |
||
6111 | string $substring, |
||
6112 | int $index, |
||
6113 | string $encoding = 'UTF-8' |
||
6114 | ): string { |
||
6115 | 8 | if ($encoding === 'UTF-8') { |
|
6116 | 4 | $len = (int) \mb_strlen($str); |
|
6117 | 4 | if ($index > $len) { |
|
6118 | return $str; |
||
6119 | } |
||
6120 | |||
6121 | /** @noinspection UnnecessaryCastingInspection */ |
||
6122 | 4 | return (string) \mb_substr($str, 0, $index) . |
|
6123 | 4 | $substring . |
|
6124 | 4 | (string) \mb_substr($str, $index, $len); |
|
6125 | } |
||
6126 | |||
6127 | 4 | $encoding = self::normalize_encoding($encoding, 'UTF-8'); |
|
6128 | |||
6129 | 4 | $len = (int) self::strlen($str, $encoding); |
|
6130 | 4 | if ($index > $len) { |
|
6131 | 1 | return $str; |
|
6132 | } |
||
6133 | |||
6134 | 3 | return ((string) self::substr($str, 0, $index, $encoding)) . |
|
6135 | 3 | $substring . |
|
6136 | 3 | ((string) self::substr($str, $index, $len, $encoding)); |
|
6137 | } |
||
13694 |