Conditions | 4 |
Paths | 4 |
Total Lines | 28 |
Code Lines | 14 |
Lines | 0 |
Ratio | 0 % |
Tests | 14 |
CRAP Score | 4.0047 |
Changes | 0 |
1 | <?php |
||
6139 | 8 | public static function str_insert( |
|
6140 | string $str, |
||
6141 | string $substring, |
||
6142 | int $index, |
||
6143 | string $encoding = 'UTF-8' |
||
6144 | ): string { |
||
6145 | 8 | if ($encoding === 'UTF-8') { |
|
6146 | 4 | $len = (int) \mb_strlen($str); |
|
6147 | 4 | if ($index > $len) { |
|
6148 | return $str; |
||
6149 | } |
||
6150 | |||
6151 | /** @noinspection UnnecessaryCastingInspection */ |
||
6152 | 4 | return (string) \mb_substr($str, 0, $index) . |
|
6153 | 4 | $substring . |
|
6154 | 4 | (string) \mb_substr($str, $index, $len); |
|
6155 | } |
||
6156 | |||
6157 | 4 | $encoding = self::normalize_encoding($encoding, 'UTF-8'); |
|
6158 | |||
6159 | 4 | $len = (int) self::strlen($str, $encoding); |
|
6160 | 4 | if ($index > $len) { |
|
6161 | 1 | return $str; |
|
6162 | } |
||
6163 | |||
6164 | 3 | return ((string) self::substr($str, 0, $index, $encoding)) . |
|
6165 | 3 | $substring . |
|
6166 | 3 | ((string) self::substr($str, $index, $len, $encoding)); |
|
6167 | } |
||
13706 |